假設以帶頭點的迴圈鍊錶表示佇列,鍊錶長度為n,只設乙個指標指向隊尾元素節點,不設頭指標,試編寫相應的佇列初始化、入隊和出隊的演算法;
實現要求:
1、輸入迴圈鍊錶長度n;
2、入隊m個元素;
3、列印佇列中所有元素;
4、出隊k個元素;
5、列印佇列中的元素;
6、銷毀佇列。
輸入:8
61 2 3 4 5 6
3輸出:
1 2 3 4 5 6
4 5 6
#include
#include
#define ok 1
#define error 0
#define overflow 0
typedef
int qelemtype;
typedef
int status;
typedef
struct qnodeqnode,
*linklist;
status initqueue
(linklist *l)
void
enqueue
(linklist *l, qelemtype e)
status dequeue
(linklist *l, qelemtype e)
void
print
(linklist l)
printf
("\n");
}void
destroyqueue
(linklist *l)
intmain()
scanf
("%d"
,&k)
;print
(l);
for(
int j =
1; j <= k; j++
)dequeue
(&l, e)
;print
(l);
destroyqueue
(&l)
;return0;
}
佇列實現 迴圈佇列 鏈式佇列
佇列 queue 是一種類似棧的資料結構,棧是 後進先出 而佇列是 先進先出 佇列通常模擬進出一致的資料處理場景,例如訊息推送處理,中的購物處理等.迴圈佇列預備知識 鏈式佇列預備知識 include include define error 0 define ok 1 define true 1 d...
鏈式棧與迴圈佇列
鏈式棧是一種資料儲存結構,可以通過單鏈表的方式來實現,使用鏈式棧的優點在於它能夠克服用陣列實現的順序棧空間利用率不高的特點,但是需要為每個棧元素分配額外的指標空間用來存放指標域。鏈式棧的定義及其基本操作 package practice 入棧使用頭結點 出棧只用刪除head.next class l...
Java實現迴圈佇列和鏈式佇列
佇列的定義 佇列是一種只允許一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為稱為隊尾,刪除的一段是隊頭。想象你去排隊購買車票時,排著乙個很長的隊,排在最前面的人買完票走了,這個操作就稱為出隊操作,而在佇列的後面又來乙個人排在後面,這個操作就稱為入隊操作。乙個普通的佇列 對於乙個普通...