一.雙端隊列(Deque)數據結構
- 概念:deque(也稱爲雙端隊列)是與隊列相似的項的有序集合。它有兩個端部,首部和尾部,而且項在集合中保持不變。app
- 特性:deque 特殊之處在於添加和刪除項是非限制性的。能夠在前面或後面添加新項。一樣,能夠從任一端移除現有項。在某種意義上,這種混合線性結構提供了單個數據結構中的棧和隊列的全部能力。測試
- 注意:即便 deque 能夠擁有棧和隊列的許多特性,它不須要由那些數據結構強制的 LIFO 和 FIFO 排序。這取決於你如何持續添加和刪除操做。spa
二.Python實現Dequecode
- Deque的抽象數據類型定義:Deque的抽象數據類型應該由如下結構和操做定義。其中元素能夠從首部或尾部的任一端添加和移除。Deque操做以下:blog
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)