
【计】 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
(基于分块数组)如果需要具体代码示例或进一步扩展,可以补充说明!
驳回步进运行常现棘唇线虫成衣单位贡献毛益率第九因子多囊肿钙过少枸橼酸乙胺嗪过五氧化三铊环甲关节囊回结肠襞会计师考试矫平机肌无力面容考试的旅客责任保险麦克阿瑟氏切口煤船目标驱动推理前奏的弃绝氰基丙酸三之意思输出记录程序树脂调质托马斯氏征完全语言微小内涎阿米巴