队列——循环队列

这次看下循环队列,也是使用数组实现,但是避免了数据的搬动。

如有不对请提出,共同提高,谢谢!!!

public class CircularQueue {

    private String[] items;
    private int n = 0;
    private int head = 0;
    private int tail = 0;

    public CircularQueue(int capacity) {
        items = new String[capacity];
        n = capacity;
    }

    public boolean enqueue(String item) {
        if ((tail + 1) % n == head) return false;
        items[tail] = item;
        tail = (tail + 1) % n;
        return true;
    }

    public String dequeue() {
        if (head == tail) return null;
        String ret = items[head];
        head = (head + 1) % n;
        return ret;
    }

}

  

猜你喜欢

转载自www.cnblogs.com/shenqiaqia/p/10488817.html