这次看下循环队列,也是使用数组实现,但是避免了数据的搬动。
如有不对请提出,共同提高,谢谢!!!
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;
}
}
原文:https://www.cnblogs.com/shenqiaqia/p/10488817.html