1. //置空隊列
2. void initQueue(LinkQueue &Q)
3. {
4. Q.rear = new QNode;
5. Q.rear->next = Q.rear;
6. }
7.
8. //判斷隊列是否爲空
9. int EmptyQueue(LinkQueue &Q)
10. {
11. if(Q.rear->next == Q.rear)
12. return 1;
13. else
14. return 0;
15. }
16.
17. //入隊
18. void EnQueue(LinkQueue &Q,QElemType e)
19. {
20. LinkQueue q = new QNode;
21. q->data = e;
22. q->next = Q.rear->next;
23. Q.rear->next = q;
24. Q.rear = q;
25. }
26.
27. //出隊
28. void DeQueue(LinkQueue &Q,QElemType e)
29. {
30. LinkQueue q = new QNode;
31. if(Q.rear->next == Q.rear)
32. return;
33. q = Q.rear->next->next;
34. e = q->data;
35. Q.rear->next->next = q->next;
36. delete q;
37. }
假設以帶頭結點的循環鏈表表示隊列,並且只設一個指針指向隊尾元素結點(注意不設頭指針),試編寫相應的置空隊列、判斷隊列是否爲空、入隊和出隊等算法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.