普通队列是一端进,另一端出的FIFO形式,而双端队列就没有这样的限制级,也就是我们可以在队列两端进行插入或者删除操作。接下来使用双端链表来实现一个双端队列。
1、引进双向链表
地址:https://blog.csdn.net/yoonerloop/article/details/81516166
2、构造方法
public class DoublesEndQueue {
private DoubleLinkedList linkedList;
public DoublesEndQueue() {
linkedList = new DoubleLinkedList();
}
}
3、添加队列
/**
* 插入元素
*/
public void add(String data){
if (data == null){
throw new NullPointerException();
}
if (data.isEmpty()){
throw new IllegalArgumentException();
}
linkedList.insert(data);
}
4、删除队列:从队头删除
/**
* 删除元素:从前端删除
*/
public String deleteHead() {
return linkedList.deleteHead().data;
}
5、删除队列:从队尾删除
/**
* 删除元素:从尾部删除
*/
public String deleteTail(){
return linkedList.deleteTail().data;
}
6、查看队列
/**
* 查看队列
*/
public void display(){
linkedList.displayAll();
}
7、查看队头
/**
* 查看队头
*/
public String getFront() {
return linkedList.getTailNode().data;
}
8、查看队尾
/**
* 查看队尾
*/
public String getEnd() {
return linkedList.getHeadNode().data;
}
9、查看队列元素个数
/**
* 查看队列里面几个元素
*/
public int size() {
return linkedList.length();
}
10、队列是否为空
/**
* 队列是否为空
*/
public boolean isEmpty() {
return linkedList.isEmpty();
}
下一篇将介绍环形队列。