雙端隊列(deque,double-ended queue),是一種具有隊列和棧的性質的數據結構。
雙端隊列中每一端,都可以進行存入和取出,去其中一段,都像一個棧一樣。
存取也只限定在兩端,不能在中間
-
雙端隊列的實現
通過線性表實現
class Dequeue(object): def __init__(self): '''初始化一個空隊列''' self.__list = [] def add_front(self, item): '''從隊列首添加''' self.__list.insert(0, item) def add_rear(self, item): '''從隊列尾添加''' self.__list.append(item) def pop_front(self): '''從隊列首刪除''' return self.__list.pop(0) # 時間複雜度O(n) def pop_rear(self): '''從隊列尾刪除''' return self.__list.pop() def is_empty(self): '''是否空''' return not self.__list def size(self): '''元素數量''' return len(self.__list)