1. 程式人生 > >隊列——數組隊列

隊列——數組隊列

ava obj arr array auth return this inf ctu

隊列是一種先進先出,支持隊尾插入,在對頭刪除元素。

如有不會的地方請指出,共同提高,謝謝!!!

如下圖:

技術分享圖片

下面就看下代碼吧:

package com.shenqi.dataStructure.queue;

/**
 * @Author:shenqi
 * @Description: 數組隊列
 * @Date:2019/1/23 12:14
 */
public class ArrayQueue {

    private int size;
    private int count;
    private Object[] array;
    private int next;

    public ArrayQueue(int size) {
        this.size = size;
        array = new Object[size];
    }

    /**
     * 入隊
     *
     * @param obj
     * @return
     */
    public boolean enqueue(Object obj) {
        if (size == count) {
            if (next == 0) return false;
            // 數據搬動
            for (int i = next; i < count; i++) {
                array[i - next] = array[i];
            }
            count -= next;
            next = 0;
        }
        array[count] = obj;
        count++;
        return true;
    }

    /**
     * 出隊
     *
     * @return
     */
    public Object dequeue() {
        if (count == 0) return null;
        if (next == size) return null;
        Object obj = array[next];
        next++;
        return obj;
    }
}

  

隊列——數組隊列