📅  最后修改于: 2023-12-03 15:04:35.913000             🧑  作者: Mango
双端队列(Deque,全名Double-ended queue)是一种具有队列和栈的性质的数据结构,又称为双向队列。其限定插入和删除操作在队列的两端进行。
在一些场景下,我们需要能够在队列的两端进行插入和删除操作。比如,在任务调度中,可能需要在队列头和尾部都添加和删除任务。
在Python中,可以使用collections
模块中的deque
类来实现双端队列。其支持从两端添加和删除元素,并提供了一些与列表相似的方法。
要创建一个双端队列,可以使用以下方式:
from collections import deque
queue = deque()
这将创建一个空的双端队列。
要在双端队列的头和尾添加元素,可以使用以下方法:
queue.appendleft(1) # 在队列头添加1
queue.append(2) # 在队列尾添加2
要从双端队列的头和尾删除元素,可以使用以下方法:
queue.popleft() # 删除队列头的元素
queue.pop() # 删除队列尾的元素
要获取双端队列的头和尾的元素,可以使用以下方法:
queue[0] # 获取队列头的元素
queue[-1] # 获取队列尾的元素
双端队列还支持以下方法:
queue.clear() # 清空队列
queue.count(1) # 统计队列中元素1的个数
queue.extend([3, 4]) # 在队列尾添加3和4
queue.extendleft([0, -1]) # 在队列头添加0和-1
queue.index(1) # 获取元素1在队列中第一次出现的位置
queue.insert(1, 3) # 在队列头第2个位置插入3
queue.remove(1) # 删除队列中第一个出现的元素1
queue.reverse() # 反转队列
queue.rotate(1) # 将队列向右循环移动1个位置
Python中的双端队列可以方便地在队列的两端进行插入和删除操作。其提供的方法与列表相似,使用起来比较简单。