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. }
假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的置空队列、判断队列是否为空、入队和出队等算法。
最新推荐文章于 2023-03-25 12:24:59 发布