1. 程式人生 > >java資料結構——雙端佇列

java資料結構——雙端佇列

普通佇列是一端進,另一端出的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();
    }

下一篇將介紹環形佇列。