java資料結構——雙端佇列
阿新 • • 發佈:2018-12-10
普通佇列是一端進,另一端出的FIFO形式,而雙端佇列就沒有這樣的限制級,也就是我們可以在佇列兩端進行插入或者刪除操作。接下來使用雙端連結串列來實現一個雙端佇列。
1、引進雙端連結串列
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();
}
下一篇將介紹環形佇列。