在一单链表中,已知q所指的结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( )。

2024-12-29 22:29:20
推荐回答(5个)
回答1:

q->next表示结点中存放的指针,该指针用来指向某个结点。

原来的连接关系是q->next=p,意思是q中存放的指针的值是p,即q指向p。

比如:原来排队p在q的后面,现在要插一个s在他们中间,需要做的事就是把原来p,q二人的联系转化为p,s,q三人的联系,先让p指向s,即q->next=s;然后让s指向q,即s->next=p。

扩展资料:

单链表链接存储方法

链接方式存储的线性表简称为链表(Linked List)。

链表的具体存储表示为:

① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)

② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))

链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。

头指针head和终端结点

单链表中每个结点的存储地址是存放在其前趋结点next域中,而开始结点无前趋,故应设头指针head指向开始结点。链表由头指针唯一确定,单链表可以用头指针的名字来命名。

终端结点无后继,故终端结点的指针域为空,即NULL。

参考资料来源:百度百科--单链表

参考资料来源:百度百科--结点

回答2:

q->next表示结点中存放的指针,该指针用来指向某个结点
原来的连接关系是q->next=p,意思是q中存放的指针的值是p,即q指向p

插入的意思,打个比方,原来排队p在q的后面,现在要插一个s在他们中间,需要做的事就是把原来p,q二人的联系转化为p,s,q三人的联系,先让p指向s,即q->next=s;然后让s指向q,即s->next=p

不知这样的解答可否满意?

回答3:

答案错了,s开始时不是没有进来这些链表中吗,怎么能赋值给q->next呢,答案是
s=q->next;p=p->next;s->next=p;
q所指的结点是p所指结点的前驱结点,那么q是排在p前面,那么就是把q的下一个结点赋给s(s=q->next),但是由于s进入,则p的结点要向后面移动一位,所以
p=p->next,最后要把s的后面一位和p接上,所以s->next=p

回答4:

q所指的结点是p所指结点的前驱结点;
据以上题意,q是p的前趋接点但不是直接前趋接点,
执行q->next=s;s->next=p;它可以在q和p之插入s结点,但原q和p之间的结点被去掉了。

回答5:

答案应该是 q->next=s,s->next=p吧
q所指的结点是p所指结点的前驱结点,那么q是排在p前面
你插入的s节点应该只有一个 怎么还要把s->next赋值给p->next