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

PTA里C语言题目,求求大家帮帮忙,我实在不会了,拜托

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

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

扩展资料:

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-22

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

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

第2个回答  2019-11-29
答案D
q->next = p->next; //让q指向p所指向的下一个节点,即解开p与其下一个节点的链,同时把q挂上
p->next = q; //让q成为p的下一个节点,即合上拆开的链本回答被网友采纳
第3个回答  2019-11-29
选D,把p的当前后继节点链接到q的后继节点。q再变成p的后继节点。就可以在插入节点后保持正确的链接关系。
第4个回答  2019-11-29

答案就是选择D

追问

为什么呢

追答

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

    head->next = p

    p->next = NULL

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

    head->next = p

    p->next = NULL

    q->next = NULL

执行p->next = q,有

    head->next = p

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

    q->next = NULL

    p->next = q

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

本回答被提问者采纳
相似回答