資料結構之python實現雙端佇列
阿新 • • 發佈:2018-12-21
雙端佇列deque
雙端佇列(deque,全名double-ended queue),是一種具有佇列和棧的性質的資料結構。
雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。
程式碼實現
"""雙端佇列"""""
class Deque(object):
def __init__(self):
self.data = []
def add_front(self,item):
"""從隊頭加入一個item元素"""
return self.data.insert(0,item)
def add_rear(self,item):
"""從隊尾加入一個item元素"""
return self.data.append(item)
def remove_front(self):
"""從隊頭刪除一個item元素"""
return self.data.pop(0)
def remove_rear(self):
"""從隊尾刪除一個item元素"""
return self.data.pop()
def is_empty(self):
"""判斷雙端佇列是否為空"""
return self.data == []
def size(self):
"""返回佇列的大小"""
return len(self.data)
if __name__ == '__main__':
deque = Deque()
# 當成棧使用
print("當成棧使用 ")
deque. add_rear(1)
deque.add_rear(2)
deque.add_rear(3)
print(deque.remove_rear())
print(deque.remove_rear())
print(deque.remove_rear())
# 當成佇列使用
print(" 當成佇列使用 ")
deque.add_front(1)
deque.add_front(2)
deque.add_front(3)
print(deque.remove_rear())
print(deque.remove_rear())
print(deque.remove_rear())