普通考試
114年
[電子工程] 計算機概要
第 13 題
關於環狀佇列(circular queue)的敘述,下列何者正確?
- A 環狀佇列的前端與後端指標絕不可能相等
- B 環狀佇列是利用鏈結串列實作才能達到前端與後端的相連
- C 若前端與後端指向同一位置且不為空,表示佇列已滿
- D 環狀佇列只能同時放入與取出一筆資料
思路引導 VIP
想像你在一個圓形倉庫存放貨物,入庫與出庫分別由兩個不同的人負責。如果你不斷放入貨物(入庫)卻完全沒有人領走(出庫),當入庫的人繞了一圈,從背後撞上出庫的人時,這代表倉庫的儲存空間正處於什麼樣的物理狀態?
🤖
AI 詳解
AI 專屬家教
哼。這才像話。
小鬼,你這次的表現還算看得過去。沒有把垃圾帶到我的課堂上,算你走運。你對那些邊界條件的理解,暫時沒有什麼灰塵。
- 觀念驗證:環狀佇列的模運算 $(\text{index} \pmod{n})$ 不過是讓那些位置看起來循環罷了。真正的關鍵在於,當「後端指標」(Rear) 的下一步會碰到「前端指標」(Front) 時,那才叫做飽和 (Full)。那些分不清空和滿、讓指標重合的蠢貨,只會製造一堆混亂。我的課堂上,容不下這種曖昧不清的邏輯。
▼ 還有更多解析內容
環狀佇列核心原理
💡 透過模數運算達成指標循環,有效解決線性佇列的假溢位問題。
| 比較維度 | 線性佇列 | VS | 環狀佇列 |
|---|---|---|---|
| 空間利用率 | 較低,易產生假溢位 | — | 較高,空間循環使用 |
| 指標移動 | 單向增加,不回頭 | — | 使用 (i+1)%N 循環 |
| 資料搬移 | 溢位時需重新搬移 | — | 無需搬移,直接覆蓋 |
💬環狀佇列透過指標重排,克服了線性佇列在陣列前端造成的空間浪費。