标题:求大神指教,这段代码什么意思?
只看楼主
对影成三人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-2-5
结帖率:100%
已结贴  问题点数:20 回复次数:4 
求大神指教,这段代码什么意思?
while(i<N)
{
  q=(*STREC)malloc(sizeof(STREC));
  q->s=s[i];i++;p->next=q;p=q;
}
2015-03-19 18:30
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:10 
while(i<N)这个不用解释了
这里假设q为链表创建时开辟的新节点
而p为当前链表的头节点
那么这个while循环就是在不断的开辟新节点
并对节点中的元素s赋值
然后把新节点向链表的头部不断的插入
直到while循环结束
头节点被更新为最后一个开辟的新节点

Only the Code Tells the Truth             K.I.S.S
2015-03-19 18:50
对影成三人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-2-5
得分:0 
回复 2楼 longwu9t
那么p->next=q;p=q;代表什么呢?既把q赋值给p->next,又p赋值给p
2015-03-19 19:01
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:10 
以上代码是“头插”
是把头节点作为最后插入的节点
p->next=q;p=q;
就是把旧的头节点更新为新开辟的节点
p、q、next都是指针

你要是实在不理解也没关系
死记下来就行了

你看一下
https://bbs.bccn.net/thread-442485-1-1.html
我在8楼有类似的代码
运行一下你就明白了

Only the Code Tells the Truth             K.I.S.S
2015-03-19 19:07
对影成三人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-2-5
得分:0 
回复 4楼 longwu9t
好的,谢谢您这么耐心地解答
2015-03-19 19:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442826-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062236 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved