佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。
佇列是一種先進先出的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。
佇列的抽象資料型別
adt 佇列(queue)data
同線性表。元素具有相同的型別,相鄰元素具有前驅和後繼的關係。
operation
initqueue(*q): 初始化操作,建立乙個空佇列q。
destroyqueue(*q): 若佇列q存在,則銷毀它。
clearqueue(*q): 將佇列q清空。
queueempty(q): 若佇列q為空,返回true,否則返回false。
gethead(q,*e): 若佇列q存在且非空,用e返回佇列q的隊頭元素。
enqueue(*q,e): 若佇列q存在,插入新元素e到佇列q中並成為隊尾元素。
dequeue(*q,*e): 刪除佇列q中隊頭元素,並用e返回其值。
queuelength(q): 返回佇列q的元素個數。
endadt
佇列的順序儲存結構
使用頭尾相接的迴圈佇列。
佇列的鏈式儲存結構
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。
大話資料結構 佇列
佇列 queue 只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。fifo結構 adt 佇列 queue data operation initqueue q 初始化操作,建立乙個空佇列q。destroyqueue q 若佇列q存在,則銷毀它。clearqueue q 將佇列q清空。que...
大話資料結構 棧與佇列
文章知識點來至於大話資料結構裡邊章節知識,這篇主要介紹棧與佇列在計算機中儲存形式,以及在某些演算法領域中對棧和佇列的相關應用。章節最後介紹了著名的逆波蘭表示式,以及通過演算法來實現該表示式的運算過程。在實現 的同時新增了流程圖。相關 原始碼請檢視文章最後。1 棧結構定義 2 棧的順序儲存 3 兩棧共...
大話資料結構 迴圈佇列 2020 6 28
佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱fifo first in first out 允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列順序儲存結構的不足 入隊操作時間複雜度為o 1 出隊操作時間複雜度為o n 因此,使用迴圈...