
【計】 dique
【計】 bothway; bustophedon; duplexing
alignment
【計】 Q; queue; queueing
雙向隊列(Double-Ended Queue,Deque) 是一種允許在隊列前端(front)和後端(rear)進行插入(insertion)和删除(deletion)操作的線性數據結構。它結合了棧(stack)和隊列(queue)的特性,提供更靈活的數據操作方式。其名稱源自“Double Ended Queue”的縮寫,中文直譯為“雙端隊列”。
雙端操作靈活性
支持在兩端高效添加(addFirst
, addLast
)或移除元素(removeFirst
, removeLast
),時間複雜度通常為 O(1)。例如:
deque.addFirst(item)
deque.addLast(item)
實現方式
可通過動态數組(如Python的collections.deque
)或雙向鍊表實現。雙向鍊表通過節點間的雙向指針(前驅prev
和後繼next
)實現快速的雙端操作。
應用場景
"radar"
)。中文術語 | 英文術語 | 說明 |
---|---|---|
雙向隊列 | Double-Ended Queue (Deque) | 核心數據結構名稱 |
前端 | Front/Head | 隊列起始操作端 |
後端 | Rear/Tail | 隊列末尾操作端 |
入隊(前端) | addFirst / push |
向前端插入元素 |
出隊(前端) | removeFirst / pop |
從前端移除元素 |
入隊(後端) | addLast / offer |
向後端插入元素 |
出隊(後端) | removeLast / poll |
從後端移除元素 |
來源:Thomas H. Cormen 等學者著作,詳細讨論雙端隊列的抽象數據類型(ADT)及實現。
collections.deque
來源:Python标準庫文檔,描述其線程安全性與時間複雜度保證(鍊接)。
Deque
接口規範
來源:Oracle官方Java文檔,定義addFirst
、removeLast
等核心方法(鍊接)。
來源:IEEE标準中将其定義為“支持兩端插入和删除的線性列表”(IEEE Std 610.12-1990)。
雙向隊列(Double-ended Queue,簡稱Deque)是一種允許在隊列的前端(Front)和後端(Rear)進行插入和删除操作的線性數據結構。它結合了隊列(FIFO,先進先出)和棧(LIFO,後進先出)的特性,具有更高的靈活性。
兩端操作
支持從頭部和尾部添加或移除元素,例如:
addFront()
:頭部插入addRear()
:尾部插入removeFront()
:頭部删除removeRear()
:尾部删除動态大小
容量可隨元素增減自動調整,無需預先定義固定長度。
靈活的數據管理
既可按隊列的FIFO規則操作,也可按棧的LIFO規則操作,或混合使用。
操作 | 普通隊列 | 雙向隊列 |
---|---|---|
頭部插入/删除 | 僅删除 | 支持 |
尾部插入/删除 | 僅插入 | 支持 |
collections.deque
(線程安全,高效内存管理)Deque
接口(如ArrayDeque
、LinkedList
)std::deque
(基于分塊數組)如果需要具體代碼示例或進一步擴展,可以補充說明!
白色瀉闆機保冷程式包說明點金石分步沉澱甘蔗渣高架鐵道跟骨鈎骨分離規定費用詭密的橫式搭接胡薄荷油賄賂手段混合增長率禁止音調蠟增力磷酸四亞甲酯馬利敏毛細現象密探尿素霜普拉馬林清潔器刀片瑞香素牲粉牲口雙眼視像融合頭胸