雙端佇列(deque,全名double-ended queue),是一種具有佇列和棧的性質的資料結構。
雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。
'''雙端佇列,兩端即可以新增也可以刪除'''
def __init__(self):
self.__list =
def add_front(self, item):
'''頭部新增'''
self.__list.insert(0, item)
def add_rear(self, item):
'''尾部新增'''
def remove_front(self):
'''頭部刪除'''
return self.__list.pop(0)
def remove_rear(self):
'''尾部刪除'''
return self.__list.pop()
def is_empty(self):
'''判斷是否為空'''
return self.__list ==
def length(self):
'''獲取雙斷佇列的長度'''
return len(self.__list)
if __name__ == '__main__':
dequeue = dequeue()
dequeue.add_front(1)
dequeue.add_front(2)
dequeue.add_front(3)
dequeue.add_rear(4)
dequeue.add_rear(5)
print(dequeue._dequeue__list)
print(dequeue.remove_front())
print(dequeue.remove_rear())
執行結果:
/home/longhui/desktop/資料結構與演算法/venv/bin/python /home/longhui/desktop/資料結構與演算法/venv/mycode/5_queue/my_dequeue.py
[3, 2, 1, 4, 5]35
process finished with exit code 0
python實現雙端佇列
雙端佇列 一種具有佇列和棧的性質和資料結構 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作,在表的兩端進行,雙端佇列可以在佇列任意一端入隊和出隊 class deque 雙端佇列 def init self self.list def add front self,item 往佇列中新增乙個i...
python實現佇列和雙端佇列
對於佇列而言,總有一端的複雜度是o n 一端是o 1 我們可以根據是取的多還是入的多調整方法。class queue object 佇列 def init self self.items def is empty self return self.items def enqueue self,ite...
用Python實現雙端佇列
雙端佇列 雙端佇列 deque,全名double ended queue 是 種具有佇列和棧的 性質的資料結構。雙端佇列中的元素可以從兩端彈出,其限定插 和刪除操作在表的兩端進 雙端佇列可以在佇列任意 端 隊和出隊。操作 實現 class deque object 雙端佇列 def init sel...