数据结构中的队列问题

一:是不是Q.front只是记录队列的头结点的地址,里面没有data,Q.rear的是记录队列的末节点地址,里面有data?二:Qnode*p;p=(QNode*)mal... 一:是不是Q.front只是记录队列的头结点的地址,里面没有data,Q.rear的是记录队列的末节点地址,里面有data? 二: Qnode *p; p=(QNode*)malloc(sizeof(QNode)); if(p==NULL) exit(OVERFLOW); p->next=NULL p->data=e; Q.rear->next=p; Q.rear=p; return OK; 这段程序中Q.rear->next=p是不是多余的?去掉的话会有什么影响? 展开
 我来答
势隽典子石
2019-06-15 · TA获得超过3928个赞
知道大有可为答主
回答量:3103
采纳率:30%
帮助的人:201万
展开全部
同学你好:我看了你的问题,你问的两个问题的解析在下面,希望能采纳

:你说的第一个问题是对的:
是不是Q.front只是记录队列的头结点的地址,里面没有data,Q.rear的是记录队列的末节点地址,里面有data?
解析:是这样的,不管是数组形式的循环队列还是链式的队列,front和rear只是存放对头和队未的地址。数组时头尾的下表,链式的队列是地址。总之都是地址。
二:这段程序中Q.rear->next=p是不是多余的?去掉的话会有什么影响?
解析:你的说不对。
首先,要将一个新的节点入队,就要Q.rear->next
=
p;这是入队操作。简单点说就是将p挂在rear后面,然后让原来的rear指向新的p;也就是接下来的一步:Q.rear
=
p;
如果没有这步就没有实现将新节点p入队。所以这步是必须的,不是多余的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式