Queue

Queue(佇列)相關資料結構,包含一般佇列、雙端佇列與優先佇列。

Queue (佇列)

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

Dequeue (雙端佇列)

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 算法
特點基於優先級、自動排序