# -*- coding: utf-8 -*-class deque(object):
"""雙端佇列"""
def __init__(self):
self.__queue =
def add(self, item):
"""往佇列頭部新增乙個item元素"""
def left_add(self, item):
"""往佇列尾部新增乙個item元素"""
self.__queue.insert(0, item)
@property
def pop(self):
"""從佇列頭部刪除乙個元素"""
return self.__queue.pop(0)
@property
def left_pop(self):
"""從佇列尾部刪除乙個元素"""
return self.__queue.pop()
@property
def is_empty(self):
"""判斷佇列是否為空"""
return not self.__queue
@property
def size(self):
"""返回佇列元素個數"""
return len(self.__queue)
if __name__ == '__main__':
q = deque()
print(q.is_empty)
q.add(3)
q.add(4)
q.add(5)
q.left_add(0)
q.left_add(1)
q.left_add(2)
print(q.is_empty)
print(q.size)
print("*"*10)
print(q.left_pop)
print(q.left_pop)
print(q.left_pop)
print(q.pop)
print(q.pop)
print(q.pop)
print("*" * 10)
print(q.size)
print(q.is_empty)
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 是一種具有佇列和棧的性質的資料結構。雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。雙端佇列,兩端即可以新增也可以刪除 def init self self.list def a...