数据结构中C语言的一些问题
图中s->data=c;r->next=s;r=s;的具体作用,以及r=s是干什么,新学数据结构,这些不知道为什么,求大神解答一下...
图中s->data=c;r->next=s;r=s;的具体作用,以及r=s是干什么,新学数据结构,这些不知道为什么,求大神解答一下
展开
2个回答
展开全部
s和r都是节点的指针
这是最简单的链表节点 一个节点由两部分组成 char data 和 node *next
next也是指针
这个算法是默认有一个初始头节点的,由r指向。因为只有一个节点 所以自己也是尾节点,r指向它没毛病。 此时r->next =null 你不用关心头节点的data是什么
然后开始循环,给s申请一个新的node节点空间,此时s指向这个新节点,然后通过s给这个节点的data赋值。
但是,这个节点跟链表是没有任何关系的,所以我们要把这个节点加到链表后面。
此时链表就一个节点(r始终指向尾节点),所以r->next=s 两个节点链接到了一起
然后再重要的事情再说一遍,r始终指向尾节点,不然下一个节点怎么加到尾部
你回去检查下发现,s还是原来那个值,新申请的节点此时有两个指针指向, 一个是r->next
另一个是s
所以让r=s 现在r也指向这个节点了,s可以空闲出来进行下一个节点的申请了
这是最简单的链表节点 一个节点由两部分组成 char data 和 node *next
next也是指针
这个算法是默认有一个初始头节点的,由r指向。因为只有一个节点 所以自己也是尾节点,r指向它没毛病。 此时r->next =null 你不用关心头节点的data是什么
然后开始循环,给s申请一个新的node节点空间,此时s指向这个新节点,然后通过s给这个节点的data赋值。
但是,这个节点跟链表是没有任何关系的,所以我们要把这个节点加到链表后面。
此时链表就一个节点(r始终指向尾节点),所以r->next=s 两个节点链接到了一起
然后再重要的事情再说一遍,r始终指向尾节点,不然下一个节点怎么加到尾部
你回去检查下发现,s还是原来那个值,新申请的节点此时有两个指针指向, 一个是r->next
另一个是s
所以让r=s 现在r也指向这个节点了,s可以空闲出来进行下一个节点的申请了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询