7.双端队列Deque
2021-02-09 本文已影响0人
Stone_説
目录:
1.双端队列的定义
2.双端队列的图解
3.双端队列定义操作
4.双端队列的实现
1.双端队列的定义
1.双端队列是一种有次序的数据集合,其特征是:
跟队列类似,其两端可以称作“首”“尾”端,但deque中数据既可以从队首加入,也可以从队尾加入;数据项也可以从两端移除。
一定程度上来说,双端队列集成了栈和队列的能力
2.双端队列并不具有内在的LIFO或者FIFO特性
3.如果需要使用双端队列来模拟栈或队列,需要由使用者自行维护操作的一致性
2.双端队列的图解
双端队列.jpg3.双端队列定义操作
Deque(): 创建一个空双端队列
addFront(item): 将item加入队首
addRear(item): 将item加入对尾
removeFront(): 从队首移除数据项,返回值为移除的数据项
removeRear(): 从队尾移除数据项,返回值尾移除的数据项
isEmpty(): 返回deque是否为空
size(): 返回deque中包含数据项的个数
4.双端队列的实现
class Deque:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def addFront(self,item):
self.items.append(item)
def addRear(self,item):
self.items.insert(0,item)
def removeFront(self):
return self.items.pop()
def removeRear(self):
return self.items.pop(0)
def size(self):
return len(self.items)