码迷,mamicode.com
首页 > 编程语言 > 详细

第十一节 双端队列的概念和python代码实现

时间:2020-03-23 23:32:54      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:item   pre   使用   obj   lis   nbsp   一个   not   object   

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代码实现

标签:item   pre   使用   obj   lis   nbsp   一个   not   object   

原文地址:https://www.cnblogs.com/kogmaw/p/12556108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!