2-12在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()?

PTA里C语言题目,求求大家帮帮忙,我实在不会了,拜托... PTA里C语言题目,求求大家帮帮忙,我实在不会了,拜托 展开
 我来答
热爱学习的Genji
高粉答主

2021-01-15 · 说的都是干货,快来关注
知道小有建树答主
回答量:1894
采纳率:100%
帮助的人:31.1万
展开全部

在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行q->next=>next;p->next=q;

单链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。

扩展资料:

单链表特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 通过指针连接起来,但是只能单向遍历的内存块。由于它是单向的,或者说不可逆的,所以我们可以把它比作我们的人生:小学->中学->大学->工作->养老。

链表是一种重要的数据结构,该结构由节点组成。每个节点包含两部分数据,第一部分是节点本身的数据,第二部分是指向下一个节点的指针。对于单向链表,链表中存在两个特殊的节点,分别为“头节点”和“尾节点”。头节点本身没有数据,只存储下一个节点的指针,尾节点只存储数据。

cdyzxy
2019-12-22 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3733万
展开全部

首先,p指向节点的next指针不能丢,应当复制到q指向的节点的next,因此B和D是对的,另外两个选择将会使这个指针丢失

p节点后面是q指向节点,因此p节点的next(现在可以被冲掉了)需要赋值为q,因此选D,像B去改变p并不能实现修改链表内部指针,因此是不行的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-11-29 · TA获得超过318个赞
知道小有建树答主
回答量:345
采纳率:90%
帮助的人:88.7万
展开全部
答案D
q->next = p->next; //让q指向p所指向的下一个节点,即解开p与其下一个节点的链,同时把q挂上
p->next = q; //让q成为p的下一个节点,即合上拆开的链
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzjxbin76
2019-11-29 · TA获得超过123个赞
知道小有建树答主
回答量:251
采纳率:67%
帮助的人:64.2万
展开全部
选D,把p的当前后继节点链接到q的后继节点。q再变成p的后继节点。就可以在插入节点后保持正确的链接关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gwt176v
2019-11-29 · TA获得超过135个赞
知道小有建树答主
回答量:240
采纳率:58%
帮助的人:93万
展开全部

答案就是选择D

追问
为什么呢
追答

比如链表是这样的 head-->p-->NULL

  1. head->next = p

  2. p->next = NULL

执行q->next = p->next后,有

  1. head->next = p

  2. p->next = NULL

  3. q->next = NULL

执行p->next = q,有

  1. head->next = p

  2. p->next = NULL(变成下面的4)

  3. q->next = NULL

  4. p->next = q

综合上述 1,4,3,链表为head-->p-->q-->NULL

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式