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

一.双端队列(Deque)数据结构

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

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

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

二.Python实现Dequecode

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

    • 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)
相关文章
相关标签/搜索