class CircularQueue{
private String[] items;
private int n;//队列长度
private int head=0;//队首指针
private int tail=0;//队尾指针
public CircularQueue(int capacity){
items=new String[capacity];
this.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;
}
}
当循环队列满时会满足,(tail+1)%n=head。其中n为队列长度
本文介绍了一种使用数组实现的循环队列数据结构,并详细解释了如何通过比较队首和队尾指针来判断队列是否已满。当(tail+1)%n等于head时,表示队列已满。
10万+

被折叠的 条评论
为什么被折叠?



