基于數組來實現循環隊列的幾種方式
- 使用 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 則說明隊列為空
參考資料
循環隊列的幾種實現方式