zoukankan      html  css  js  c++  java
  • 第十一节 双端队列的概念和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())
  • 相关阅读:
    static心得
    建库注意
    Django之模板层
    Django之视图层
    Django之路由层
    Django开篇
    HTTP协议——详细版
    前端之bootstrap
    前端之Jquery
    前端之BOM和DOM
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12556108.html
Copyright © 2011-2022 走看看