基于数组来实现循环队列的几种方式
- 使用 usedSize
- 使用 标志位
- 空出一个位置
方式一
usedSize == 0 是则表示当前数组为空
usedSize == 数组的长度 则表示当前数组满了
方式二
使用一个标记 flag 来判断当前队列是空还是满
如果 flag == false 则说明队列为空
如果 flag == true 则说明队列已满
每次的入队操作都将 flag 置为 true , 每次的出队操作都将 flag 置为 false
public boolean isEmpty() {return head == tail && flag == false;}public boolean isFull() {return head == tail && flag == true;}
方式三
浪费一个格子, 用来判断队列是空还是满
如果 tail + 1 == head 则说明队列满了
如果 tail == head 则说明队列为空
参考资料
循环队列的几种实现方式