#define maxsize 20
typedef struct
sqqueue;
佇列滿的條件是:
(rear+1)%queuesize == front;
通用的計算佇列長度公式:
(rear-front+queuesize)%queuesize;
//初始化乙個空佇列q
int initqueue(sqqueue *q)
//返回q的元素個數,也就是佇列的當前長度
int queuelength(sqqueue q)
//若佇列未滿,則插入元素e為q新的隊尾元素
intenqueue
(sqqueue *q,
int e)
//若佇列不為空,則刪除q中隊頭元素,用e返回其值
intdequeue
(sqqueue *q,
int*e)
佇列的鏈式儲存結構,起始就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。隊頭指標指向鏈佇列的頭結點,隊尾指標指向終端結點。空佇列時,front和rear都指向頭結點。
typedef
struct qnode //結點結構
qnode,
*queueptr;
typedef
struct
//佇列的鍊錶結構
linkqueue;
//插入元素e為q的新的隊尾元素
intenqueue
(linkqueue *q,
int e)
//若佇列不空,刪除q的隊頭元素,用e返回其值,並返回1,否則返回0
intdequeue
(linkqueue *q,
int*e)
在可以確定佇列長度最大值的情況下,建議用迴圈佇列,如果無法預估佇列的長度,就用鏈佇列。 大話資料結構 迴圈佇列 2020 6 28
佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱fifo first in first out 允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列順序儲存結構的不足 入隊操作時間複雜度為o 1 出隊操作時間複雜度為o n 因此,使用迴圈...
大話資料結構 佇列
佇列 queue 只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。fifo結構 adt 佇列 queue data operation initqueue q 初始化操作,建立乙個空佇列q。destroyqueue q 若佇列q存在,則銷毀它。clearqueue q 將佇列q清空。que...
大話資料結構 佇列
佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列的抽象資料型別 adt 佇列 queue data 同線性表。元素具有相同的型別,相鄰元素具有前驅和後繼的關係。operation initq...