基本数据结构-栈 (stack)
栈是动态集合,在其上进行删除操作所移除的元素是预先设定的,在栈中,被删除的是最近插入的元素:栈实现的是一种后进先出(last-in,first-out,LIFO)策略。
在栈上的INSERT操作称为压入(PUSH),会把元素压到栈顶,而无参数的DELETE操作称为弹出(POP),把栈顶的元素取出。
Java的LinkedList具有能够直接实现栈的所有功能的方法。
public class Stack<T> {
private LinkedList<T> storage = new LinkedList<T>();
//压栈
public void push(T t) { storage.addFirst(t); }
//出栈
public T pop() { return storage.removeFirst(); }
//返回栈顶元素
public T top() { return storage.getFirst(); }
//判断栈是否为空
public boolean empty() { return storage.isEmpty(); }
}
基本数据结构-队列(queue)
队列也是动态集合,实现的是一种先进先出(first-in,first-out)策略,被删除的总是在集合中存在时间最长的元素。
在队列上的INSERT操作称为入队,把元素放在队尾;无参数的DELETE操作称为出队,而出队的总是队头。
在Java中,LinkedList提供了方法以支持队列的行为,并且它实现了Queue接口,因此LinkedList可以作为队列的一种实现,通过向上转型为Queue。