概念
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端,两端都可以入队和出队。
示意图
LinkedList 类在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列 (deque)。
具体实现
public class Deque<T> {
private LinkedList<T> linkedList=new LinkedList<>();
//获取双端队列大小
public int size(){
return linkedList.size();
}
//头部入队
public void enFront(T data){
linkedList.add(data);
}
//尾部入队
public void enRear(T data){
linkedList.add(0,data);
}
//头部出队
public T deFront(){
return linkedList.remove(0);
}
//尾部出队
public T deRear(){
return linkedList.remove(linkedList.size()-1);
}
//头元素
public T Front(){
return linkedList.get(0);
}
//尾元素
public T Rear(){
return linkedList.get(linkedList.size()-1);
}
//清空队列
public void clear(){
linkedList.clear();
}
@Override
public String toString() {
return "Deque{" + "linkedList=" + linkedList + '}';
}
}
测试结果