與棧一樣,
佇列(Queue)也是一種資料結構,它包含一系列元素。但是,佇列存取元素的順序不是後進先出(LIFO),而是
先進先出(FIFO)。佇列中元素的處理就像是站在商店收款台前排隊等待的顧客:排在最前面的顧客最先結賬。
佇列資料結構常用於計算機作業系統。它們在多使用者/多工環境中尤為重要,在這種環境中,多個使用者或任務可能同時請求同一資源。例如,列印由佇列控制,因為一次只能列印一個文件。佇列用於儲存由系統使用者提交的列印作業,而印表機則一次處理一個作業。
通訊軟體也會使用佇列來儲存通過網路和撥號連線方式接收到的資訊。有時,資訊傳輸到系統的速度比它能處理的要快,因此在收到資訊時會先將其放入佇列中。
順序佇列和鏈佇列
佇列與棧一樣,也可以實現為陣列或連結串列。前面介紹過,順序棧與鏈棧相比有兩項優勢,而這樣的優勢在順序佇列與鏈佇列的對比中也同樣存在。實際上,佇列與棧之間的主要區別在於每個結構中資料元素的存取方式。
佇列操作
佇列和商店收款台的排隊線一樣,也分前面(以 front 表示)和後面(以 rear 表示),如圖 1 所示。
圖 1 佇列示意圖