zoukankan      html  css  js  c++  java
  • 6.基本数据结构-双端队列(Deque)

    6.基本数据结构-双端队列(Deque)

     

    一.双端队列(Deque)

      - 概念:deque(也称为双端队列)是与队列类似的项的有序集合。它有两个端部,首部和尾部,并且项在集合中保持不变。

      - 特性:deque 特殊之处在于添加和删除项是非限制性的。可以在前面或后面添加新项。同样,可以从任一端移除现有项。在某种意义上,这种混合线性结构提供了单个数据结构中的栈和队列的所有能力。

      - 注意:即使 deque 可以拥有栈和队列的许多特性,它不需要由那些数据结构强制的 LIFO 和 FIFO 排序。这取决于你如何持续添加和删除操作。

    二.Python实现Deque

      - Deque的抽象数据类型定义:Deque的抽象数据类型应该由以下结构和操作定义。其中元素可以从首部或尾部的任一端添加和移除。Deque操作如下:

      • Deque() 创建一个空的新 deque。它不需要参数,并返回空的 deque。
      • addFront(item) 将一个新项添加到 deque 的首部。它需要 item 参数 并不返回任何内容。
      • addRear(item) 将一个新项添加到 deque 的尾部。它需要 item 参数并不返回任何内容。
      • removeFront() 从 deque 中删除首项。它不需要参数并返回 item。deque 被修改。
      • removeRear() 从 deque 中删除尾项。它不需要参数并返回 item。deque 被修改。
      • isEmpty() 测试 deque 是否为空。它不需要参数,并返回布尔值。
      • size() 返回 deque 中的项数。它不需要参数,并返回一个整数。

      

    复制代码
    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)
    复制代码
     
     
     
  • 相关阅读:
    rest简单实例
    Rest简介
    java视频
    j2ee开发中的“java容器”和“web容器”有什么区别?
    用Java实现自己的ArrayList
    Java中关于枚举的7种用法
    Java多线程实现自然同步(内含演示案例)
    Java实现简单的文件复制
    Java之自动拆装箱
    写一个SingleTon,(饿最终、懒同步)
  • 原文地址:https://www.cnblogs.com/yanghongtao/p/10960364.html
Copyright © 2011-2022 走看看