for 中的s->next=p->next;p->next=s;p=p->next原理是啥?
1个回答
展开全部
这里用的是尾插法
每个新节点
插入在当前链表尾部。
p初始指向头结点,
之后每次插入后
指向链表最后一个节点。
s是要插入的节点。
于是
s=(NODE)malloc(sizeof(NODE));//申请一个新节点
s->data=rand()%m;//生成节点数据 随机
s->next=p->next;//其实 这个可以改成 s->next=NULL;因为p一直是指向最后一个节点的,p->next就是NULL。 这句 可以认为是对s的一个初始化
p->next=s;//把s放到p的下一个,也就是链表尾
p=p->next;//p始终要指向最后一个节点, 于是p=p->next;这个可以改成p=s;所以
如果改成这样就好理解多了,效果是相同的
s=(NODE)malloc(sizeof(NODE));//申请一个新节点
s->data=rand()%m;//生成节点数据 随机
s->next=NULL;//要把s插入到最后,那么s->next就初始化为空
p->next=s;//插入s节点,这样s就是最后一个节点了
p=s;//让p继续指向最后一个节点。
每个新节点
插入在当前链表尾部。
p初始指向头结点,
之后每次插入后
指向链表最后一个节点。
s是要插入的节点。
于是
s=(NODE)malloc(sizeof(NODE));//申请一个新节点
s->data=rand()%m;//生成节点数据 随机
s->next=p->next;//其实 这个可以改成 s->next=NULL;因为p一直是指向最后一个节点的,p->next就是NULL。 这句 可以认为是对s的一个初始化
p->next=s;//把s放到p的下一个,也就是链表尾
p=p->next;//p始终要指向最后一个节点, 于是p=p->next;这个可以改成p=s;所以
如果改成这样就好理解多了,效果是相同的
s=(NODE)malloc(sizeof(NODE));//申请一个新节点
s->data=rand()%m;//生成节点数据 随机
s->next=NULL;//要把s插入到最后,那么s->next就初始化为空
p->next=s;//插入s节点,这样s就是最后一个节点了
p=s;//让p继续指向最后一个节点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询