在一单链表中,已知q所指的结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( )。
正确答案是: q->next=s;s->next=p 展开
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。
参考资料来源:百度百科--单链表
参考资料来源:百度百科--结点
原来的连接关系是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
不知这样的解答可否满意?
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
据以上题意,q是p的前趋接点但不是直接前趋接点,
执行q->next=s;s->next=p;它可以在q和p之插入s结点,但原q和p之间的结点被去掉了。
q所指的结点是p所指结点的前驱结点,那么q是排在p前面
你插入的s节点应该只有一个 怎么还要把s->next赋值给p->next
广告 您可能关注的内容 |