基本觀念

資料插入與讀取
資料的插入和讀取比較簡單,所以不花太多篇幅描寫僅簡單的條列出一些重點
1、讀取資料時,已讀取的資料會被從佇列中移出。
2、必須先讀取先進入的資料,所以不能從佇列的中間讀取。
佇列程式實作
我們使用串列模擬佇列的功能,假設從頭部插入資料,可以用python內建insert(0,data)達到enqueue的效果。從尾部讀取資料,使用pop達到dequeue的效果。大家可以自行使用python tutor 跑跑看程式,會更了解佇列的運作。
class Queue():
def __init__(self):
self.queue = [] #使用串列模擬
def enqueue(self,data): #插入資料
self.queue.insert(0,data)
def dequeue(self): #讀取資料
if len(self.queue):
return self.queue.pop()
return "佇列是空的"
q = Queue()
q.enqueue('apple')
q.enqueue('guava')
q.enqueue('banana')
print("讀取佇列:",q.dequeue())
print("讀取佇列:",q.dequeue())
print("讀取佇列:",q.dequeue())
print("讀取佇列:",q.dequeue())
以下是輸出的結果,可以看到先輸入的的資料會先被輸出,並且輸出完後會將資料從佇咧移除,所以最後佇列會是空的。

與佇列有關的python模組
除了用陣列模擬佇列之外,也提供一個python內建的模組,可以使用佇列的功能,但因為python tutor 沒有支援這個模組,所以大家可以在自己的電腦安裝python環境和這個模組再試試看,有興趣的讀者不仿可以自己研究看看。
from queue import Queue
q = Queue()
for i in range(3): #輸入0~2至佇列中
q.put(i)
while not q.empty():
print(q.get()) #讀取佇列內的資料
以下是用電腦的環境輸出的結果,程式碼寫著從0輸入到2進入佇列,然後再一一讀取出來。
