基本數據結構-雙端隊列(Dueue)


一.雙端隊列(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)
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM