刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
简答题
请填补函数中的空缺部分,完善enqueue和Dequeue函数。
使用微信搜索喵呜刷题,轻松应对考试!
答案:
(1)Q→rear→next=p
(2)Q→rear=p
(3)Q→rear→next
(4)p→next
(5)Q→rear==p 或 Q→rear→next==p→next 或 Q→size==1
解析:
本题考察的是使用C语言处理链表以及队列操作的知识。
- 对于入队列操作(enqueue函数):
- 当队列不为空时,新元素p的next指针应指向原队尾的下一个元素,即
Q→rear→next=p。 - 队尾元素应指向新元素p,即
Q→rear=p。
- 当队列不为空时,新元素p的next指针应指向原队尾的下一个元素,即
- 对于出队列操作(Dequeue函数):
- 首先判断队列是否为空,如果为空则直接返回错误。
- 令p指向队头元素结点,即
p=Q→rear→next。 - 将队列元素结点从链表中去除,即将队尾的next指针指向p的下一个元素,即
q->rear->next=p->next。此时,p指向的结点已经被移除出队列。 - 判断被删除的队头结点是队列中的唯一结点,可以通过多种方式判断,如
Q→rear==p或Q→rear→next==NULL或Q→size==1等。如果被删除的结点是唯一结点,则将队尾指针设为NULL并释放该结点所占内存。最后更新队列大小并返回操作结果。
根据上述分析,填空部分的答案已给出。
创作类型:
原创
本文链接:请填补函数中的空缺部分,完善enqueue和Dequeue函数。
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



