在一个单链表中,若p所指的结点不是最后结点,在p之后插入s结点,则执行()

A、s->next=p;p->next=s. B.s->next=p->next;p=s.
C. s->next=p->next;p->next=s. D.p->next=s;s->next=p.
详细解释!谢谢!

首先的保证p后面的一个节点不能断掉,应为是单链表,所以p后面的节点先要与新插入的s相连,s->next = p->next。在把p的next指针指向s。

链接方式存储的线性表简称为链表(Linked List)。链表的具体存储表示为:用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)链表中结点的逻辑次序和物理次序不一定相同。

为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。


扩展资料:

C语言创建单链表如下:

#include"stdio.h"

#include"stdlib.h"

#include"malloc.h"

#include "iostream.h"

typedef struct node

{

int  data;

node * next;

}node , * List;

void create(int n)

{

int c;

List s,L;

L=(List)malloc(sizeof(node));

L->next=NULL;

printf("请输入第1个数据:");

scanf("%d",&c);

L->data=c;

for(int i=2;i<=n;i++)

{

s=(List)malloc(sizeof(node));

printf("请输入第%d个数据:",i);

scanf("%d",&c);

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
C是正确的,首先的保证p后面的一个节点不能断掉,应为是单链表,所以p后面的节点先要与新插入的s相连,s->next = p->next
然后在将s与p相连
p->next= s本回答被提问者采纳
第2个回答  2008-08-19
答案是c,
s->next=p->next的意思是s在p->next的结点前面了,
p->next=s的意思是s在p结点的后面
第3个回答  2008-08-19
C
p 不是最后结点的话,,要进行两种操作。。

先把s的next指针指向和p的next指针

在把p的next指针指向s。。

画一下图就非常明白这样的题。。
第4个回答  2008-08-19
d
相似回答