循环队列原理
Java实现
public class CircleQueue<Item> {
private static final int LENGTH = 4 ;
private Item[] a = (Item[]) new Object[LENGTH];
private int N;
private int first;
private int last;
public boolean isEmpty () {
return N == 0 ;
}
public int size () {
return N;
}
public void enqueue (Item item) throws Exception {
if (N > 0 && first == last) {
throw new Exception("队列已满!" );
}
a[last] = item;
last = (last + 1 ) % LENGTH;
N++;
}
public Item dequeue () throws Exception {
if (isEmpty()) {
throw new Exception("队列为空!" );
}
Item item = a[first];
first = (first + 1 ) % LENGTH;
N--;
return item;
}
public static void main (String[] args) throws Exception {
CircleQueue<String> cq = new CircleQueue<>();
System.out .println("元素个数" + cq.size());
cq.enqueue("lzp." );
cq.enqueue("baidu" );
cq.enqueue(".com" );
cq.enqueue(".cn" );
System.out .println("--队列元素个数" + cq.size());
cq.dequeue();
System.out .println("--队列元素个数" + cq.size());
}
}