用 python 來實現 佇列和雙端佇列, 直接上**理解即可. 佇列蠻好理解的, 就是模擬咱生活中的排隊. 先進, 先出嘛.
"""
佇列 - adt
佇列 queue 被構造為在隊尾新增元素, 隊首刪除元素的有序集合, fifo
queue(): 建立乙個空佇列
enqueue(itme): 入隊, 將元素新增到隊尾
dequeue(): 出隊, 刪除隊首元素並返回
is_empty(): 判斷佇列是否為空
sise(): 返回佇列中的元素個數
思路: 用 list 作為底層, 約定, 最左端為隊尾, 最右端為隊首
"""class queue:
def __init__(self):
self.items =
def enqueue(self, item):
"""新增元素到隊尾"""
self.items.insert(0, item)
def dequeue(self):
"""刪除隊首元素並返回"""
return self.items.pop()
def is_empty(self):
return self.items ==
def size(self):
return len(self.items)
if __name__ == '__main__':
q = queue()
for i in range(1,6):
q.enqueue(i)
print(q.size())
print(q.dequeue())
print(q.dequeue())
print(q.is_empty())
"""
deque
雙端佇列被構造為項的集合, 可以從隊首或隊尾任意一段增刪元素.
deque(): 建立乙個新的deque
add_front(item): 從隊首新增元素
add_rear(item): 從隊尾新增元素
remove_front(item): 從隊首刪除元素, 並返回
remove_rear(item): 從隊尾刪除元素, 並返回
is_empty(): 判斷佇列是否空
size(): 返回佇列中的項數
思路: 用 list 作為底層架構, 並約定, 最左邊為對尾, 最右側為對首
"""class deque:
def __init__(self):
self.items =
def add_front(self, item):
"""隊首新增元素"""
def remove_front(self):
"""隊首刪除元素"""
return self.items.pop()
def add_rear(self, item):
"""隊尾新增元素"""
self.items.insert(0, item)
def remove_rear(self):
"""刪除隊尾元素"""
return self.items.pop(0)
def is_empty(self):
return self.items ==
def size(self):
return len(self.items)
if __name__ == '__main__':
dq = deque()
for i in range(3):
dq.add_front(i)
print(dq.size())
dq.add_rear(-1)
print(dq.remove_front())
print(dq.size())
python 清空佇列 python實現 佇列
佇列 佇列的乙個特性是 先進先出 first in first out,fifo python中,同樣可以使用列表來儲存佇列的資料。通過建立乙個佇列類,便可以方便的對佇列進行操作。主要有 入隊 in 出隊 out 清空佇列 empty 設定佇列大小 setsize 獲取隊尾位置 getend 等 p...
佇列(python實現)
adt queue queue self 建立空佇列 is empty self 判斷佇列是否為空 enqueue self,elem 入隊 dequeue self 出隊 peek self 檢視最早入隊的元素,不刪除class queueunderflow valueerror 空佇列訪問 pa...
Python實現佇列
佇列 是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。特點 先進先出。class queue object def init self se...