第十一节 双端队列的概念和python代码实现
Posted kog_maw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一节 双端队列的概念和python代码实现相关的知识,希望对你有一定的参考价值。
deque 即双端队列。
(deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
双端队列是限定插入和删除操作在表的两端进行的线性表。这两端分别称做端点1和端点2。也可像栈一样,可以用一个铁道转轨网络来比喻双端队列。在实际使用中,还可以有输出受限的双端队列(即一个端点允许插入和删除,另一个端点只允许插入的双端队列)和输入受限的双端队列(即一个端点允许插入和删除,另一个端点只允许删除的双端队列)。而如果限定双端队列从某个端点插入的元素只能从该端点删除,则该双端队列就蜕变为两个栈底相邻的栈了。
1 class Dque(object): 2 ‘‘‘双端队列‘‘‘ 3 def __init__(self): 4 self.__list = [] 5 6 def add_front(self, item): 7 ‘‘‘往队列中添加一个元素‘‘‘ 8 self.__list.insert(0, item) 9 10 def add_rear(self, item): 11 ‘‘‘往队列中添加一个元素‘‘‘ 12 self.__list.append(item) 13 14 def pop_front(self): 15 ‘‘‘从队列头部删除一个元素‘‘‘ 16 return self.__list.pop(0) 17 18 def pop_rear(self): 19 ‘‘‘从队列头部删除一个元素‘‘‘ 20 return self.__list.pop() 21 22 def is_empty(self): 23 ‘‘‘判断是否一个队列为空‘‘‘ 24 return not self.__list 25 26 def size(self): 27 ‘‘‘返回队列的大小‘‘‘ 28 return len(self.__list) 29 30 if __name__ == "__main__": 31 due = Dque() 32 due.add_front(1) 33 due.add_rear(2) 34 print(due.pop_front())
以上是关于第十一节 双端队列的概念和python代码实现的主要内容,如果未能解决你的问题,请参考以下文章