第十一节 双端队列的概念和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代码实现的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记第十一节(迭代和其他)

python学习笔记第十一节(迭代和其他)

第十一节:IdentityServer4授权码模式介绍和代码实操演练

Python数据结构学习笔记——队列和双端队列

Python数据结构与算法(3.5)——双端队列

Python基础学习第十一节 内置函数详解