資料結構5 關於鏈佇列的例項,列印鏈佇列中內容

2021-06-25 21:35:33 字數 910 閱讀 1161

程式實現乙個鏈佇列,任意輸入一串兒字元,以@為結束標誌,然後將佇列中的元素逐一取出,列印在螢幕上。**如下所示:

#include"stdio.h"

typedef char elemtype;

typedef struct qnodeqnode,*queueptr;

typedef structlinkqueue;

initqueue(linkqueue *q)

enqueue(linkqueue *q,elemtype e)

dequeue(linkqueue *q,elemtype *e)

/*測試函式*/

main()

printf("the string into the queue is\n");

while(q.front!=q.rear)

printf("\n");

getche();

}

實現結果如下圖所示:

例項與分析:

1.在入佇列操作中,我犯了乙個錯誤,把q->front寫成了p->front,剛開始還比較納悶,為啥錯了,後來感覺是自己不注意......大家需要注意鏈佇列的定義,它是首先定義了乙個qnode類,它是乙個佇列的元素類(佇列中每個元素的型別都是qnode),說白了就是先定義乙個鍊錶,再用鍊錶定義乙個佇列,就是所謂的鏈佇列了。在入佇列操作中,p只是乙個活動指標,它是qnode型別,而不是linkqueue型別,所以沒有p->front。

2.為什麼在出佇列操作中,如果隊頭就是隊尾(也就是佇列中只有乙個元素的情況),要修改隊尾指標?由於此時刪除隊頭元素後該隊列為空,所以要修改隊尾指標,否則下次判斷的時候無法知道佇列已經空了。

資料結構 鏈佇列

佇列沒完全看懂 include include define datatype int 定義節點結構 typedef struct nodequeuenode 定義頭節點 typedef structlinkqueue 初始化鏈佇列,頭節點置空 void initqueue linkqueue q ...

資料結構 鏈佇列

課程實驗,多有不足 include include include define true 1 define false 0 define ok 1 define error 0 typedef int queueelementtype typedef struct node linkqueueno...

資料結構 鏈佇列

鏈式佇列的實現思想同順序佇列類似,只需建立兩個指標 命名為 top 和 rear 分別指向鍊錶中佇列的隊頭元素和隊尾元素 圖 1 所示為鏈式佇列的初始狀態,此時佇列中沒有儲存任何資料元素,因此 top 和 rear 指標都同時指向頭節點。在建立鏈式佇列時,強烈建議初學者建立乙個帶有頭節點的鍊錶,這樣...