栈和队列
最常见的数据结构中的两种,也属于线性表,但是是比较特殊的线性表;
栈
特点为先入后出,意为多个数据进入改类型的容器时 先入栈的数据要后出栈。总体来说像是从一个封底的水桶中依次放入一个又一个圆盘,然后依次拿出数据。
只能在栈顶进行增加,删除,访问的操作
如下图:
入栈和出栈一定符合 先进后出(First In Last Out)(FILO)的规律。
可以采用LinkedList实现栈的所有操作,在JDK中体现为 stack 类 继承自Vector,栈也是一个表。
Vector译为 ‘矢量’
队列
特点为 先进先出,后进后出 First In First Out (FIFO) 或 Last In Last Out (LILO),只能在队头进行 删除操作,只能在队尾进行 增加操作。
如下图所示:
一般的队列均为先进先出,后进后出,但在Java集合中也存在 优先队列 PriorityQueue
一般代码可以如下实现:
/**
* 一般队列
*/
public class NormalQueue<E> {
private LinkedList<E> queue = new LinkedList<>();
public void InsideQueue(E e){
queue.addLast(e);
}
public E deleteElement(){
return queue.removeLast();
}
}