在一个单链表中,若p所指的结点不是最后结点,在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);
参考资料来源:百度百科-单链表
然后在将s与p相连
p->next= s
s->next=p->next的意思是s在p->next的结点前面了,
p->next=s的意思是s在p结点的后面
p 不是最后结点的话,,要进行两种操作。。
先把s的next指针指向和p的next指针
在把p的next指针指向s。。
画一下图就非常明白这样的题。。