栈
概念
栈(stack)是一种只允许在一端进行插入和删除的特殊线性表结构,进行数据插入和删除的一端叫栈顶,另一端则是栈底。
特性
先进后出
栈的实现
class MyStack<E>
{
private E[] array =(E[]) new Object[100];
private int size = 0;
public void push(E e){
if(size == 100)
return;
array[size++] = e;
}
public E pop(){
if(empty())
return null;
E e = array[size - 1];
size--;
return e;
}
E peek(){
if(empty())
return null;
return array[size - 1];
}
boolean empty(){
return 0 == size;
}
}
队列
概念
队列是一种只允许在一端进行数据插入操作、在另一端进行删除操作的特殊线性表结构。进行删除操作的一端为队头,进行插入操作的为队尾。
特性
先进先出
队列的实现
public class MyQueue<E> {
private Node<E> front;
private Node<E> rear;
private int size;
MyQueue()
{
front = rear = new Node<E>();
size = 0;
}
boolean offer(E e)
{
Node<E> node = new Node<>();
rear = rear.next;
return true;
}
E poll()
{
if(isEmpty())
return null;
E ret = (E) front.next.data;
front.next = front.next.next;
size--;
return ret;
}
E peek()
{
if(isEmpty())
return null;
return (E)front.next.data;
}
int size()
{
return size;
}
boolean isEmpty()
{
return 0 == size;
}
}