數據結構之【隊列】

3 數據結構之隊列

3.1 什麼是隊列

Queue也是一種線性結構,相比數組,隊列的操做是數組的子集。java

只能從隊尾添加元素,從隊首取出元素。git

和生活中的排隊是同樣的,先到先得。github

 

 LinkedList類實現了Queue接口,所以咱們能夠把LinkedList當成Queue來用。下面咱們用上一節的動態數組來實現本身的隊列這種數據結構。數組

3.2 隊列的基本實現

有了實現棧的經驗,如今實現隊列會比較容易些。數據結構

先寫隊列的接口Queue.javaide

public interface Queue<E> {
    void enqueue(E e); // 入隊列
    E dequeue(); //出隊列
    E getFront();  //獲取隊首元素
    int getSize(); //獲取隊列中元素個數
    boolean isEmpty();
}

 

而後實現這些接口,一樣基於上一節實現的動態數組。spa

public class ArrayQueue<E> implements Queue<E> {
    private Array<E> array;
    public ArrayQueue(int capacity) {
        array = new Array<>(capacity);
    }
    public ArrayQueue() {
        array = new Array<>();
    }
    @Override
    public void enqueue(E e) {
        array.addLast(e);
    }
    @Override
    public E dequeue() {
        return array.removeFirst();
    }
    @Override
    public E getFront() {
        return array.getFirst();
    }
    @Override
    public int getSize() {
        return array.getSize();
    }
    @Override
    public boolean isEmpty() {
        return array.isEmpty();
    }
}

這樣咱們的隊列就實現了3d

 

代碼: https://github.com/zhang-anan/DataStructure/tree/master/src/cc/myall/demo03code

相關文章
相關標籤/搜索