刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

请填补函数中的空缺部分,完善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语言处理链表以及队列操作的知识。

  1. 对于入队列操作(enqueue函数):
    • 当队列不为空时,新元素p的next指针应指向原队尾的下一个元素,即 Q→rear→next=p
    • 队尾元素应指向新元素p,即 Q→rear=p
  2. 对于出队列操作(Dequeue函数):
    • 首先判断队列是否为空,如果为空则直接返回错误。
    • 令p指向队头元素结点,即 p=Q→rear→next
    • 将队列元素结点从链表中去除,即将队尾的next指针指向p的下一个元素,即 q->rear->next=p->next。此时,p指向的结点已经被移除出队列。
    • 判断被删除的队头结点是队列中的唯一结点,可以通过多种方式判断,如 Q→rear==pQ→rear→next==NULLQ→size==1 等。如果被删除的结点是唯一结点,则将队尾指针设为NULL并释放该结点所占内存。最后更新队列大小并返回操作结果。

根据上述分析,填空部分的答案已给出。

创作类型:
原创

本文链接:请填补函数中的空缺部分,完善enqueue和Dequeue函数。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share