Queue
Queue(佇列)相關資料結構,包含一般佇列、雙端佇列與優先佇列。
Queue (佇列)
| 特性 | 說明 |
|---|---|
| 全名 | Queue |
| 操作原則 | FIFO (先進先出) |
| 插入操作 | 只能在尾端 (rear) |
| 刪除操作 | 只能在前端 (front) |
| 主要操作 | enqueue, dequeue |
| 內部實現 | Array / LinkedList |
| 時間複雜度 (平均) | 插入和刪除: O(1) |
| 應用場景 | 任務排程、廣度優先搜索 |
| 特點 | 簡單、順序處理 |
Dequeue (雙端佇列)

| 特性 | 說明 |
|---|---|
| 全名 | Doubly Ended Queue |
| 操作原則 | FIFO 或 LIFO (可在兩端操作) |
| 插入操作 | 可在前端或尾端 |
| 刪除操作 | 可在前端或尾端 |
| 主要操作 | enqueueFront, enqueueRear, dequeueFront, dequeueRear |
| 內部實現 | Array / Doubly LinkedList / RingBuffer |
| 時間複雜度 (平均) | 插入和刪除: O(1) / Array: PushFront O(n), PushBack 需要擴容時是 O(n) |
| 應用場景 | 回文檢查、滑動窗口問題 |
| 特點 | 靈活、雙向操作 |
Priority Queue (優先佇列)
| 特性 | 說明 |
|---|---|
| 全名 | Priority Queue |
| 操作原則 | 基於優先級 |
| 插入操作 | 可在任何位置 |
| 刪除操作 | 刪除最高優先級元素 |
| 主要操作 | enqueue (帶優先級), dequeue |
| 內部實現 | Heap |
| 時間複雜度 (平均) | 插入: O(log n), 刪除最大/最小: O(log n) |
| 應用場景 | 事件驅動模擬、Dijkstra 算法 |
| 特點 | 基於優先級、自動排序 |