好心人帮助啊!!!!
在学习数据结构,使用的是C语言,在学习线性表的单链表头插入语句看不懂. 实际上我是看不懂 head 头指针,不知道是作者写错了,还是我太差了.
说明:
头插法建表
该方法从一个空表开始,重复读入数据,生成新接点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读如结束标志为止.在空链表head中依次插入a,b,c之后,将d插入到当前链表表头时指针的修改情况.具体算法如下:
1 LinkList CreateListF(void) //返回单链表的头指针
2 {char ch;
3 LinkList head; //头指针
4 ListNode *s; //工作指针
5 head=NULL; //链表开始为空
6 ch=getchar(); //读第1个字符
8 while(ch!='\n'){
9 s=(ListNode *)malloc(sizeof(ListNode)); //生成新结点,
10 s->data=ch;
11 s->next=head;
12 head=s;
13 ch=getchar(); //读入下一个字符
14 }
15 return head; //返回头指针
16 }
我就是看不懂,问题一、上面说的:空链表head中依次插入a,b,c之后,将d插入;
我就不明白了,这段程序是 插入abc之后再插如d.还是已经有abc了,这段程序只是插入d.
问题二、上面的出现了三个head,分别在5、11、12行,我就看不懂,第5行说head=NULL; 第11行我可以不可以理解为s->next=NULL;这样就不对了,因为是头插入,不可能next 为空啊,
问题三、是不是作者写错了。
谢谢你的帮助,如果我知道为什么了,一定重谢