常用的链表有单链表、双向链表和循环链表,这次只完成了单链表的c语言实现,在写代码中所遇到的问题在代码注释中也都有标注,在实现上最关键的还是对整体结构的理解,只有对整体结构有一定的了解,才能在具体的代码实现中少走很多的弯路,在具体的代码实现过程中,要着重关注每一个变量的内容和具体的含义,只有搞清楚了这一点才能在实现的时候不出现一些莫名其妙的问题。
比如在这次实现中,就碰到了在插入初始插入数据的时候,输出的内容一直与插入时相反,也就是说,起初预想的是每次插入数据都是在最后一位进行插入,而实际情况是从开头进行插入的,在仔细研究完代码后,发现了问题所在
我们在第一次插入数据的时候,情况是这样的
但是如果再继续往后面插入的时候,由于list所指的内存地址并没有改变,所以插入的情况是这样的
就造成了输出与输入呈倒序的方式,所以只需要将list所指向的内存地址进行变化就可以了,修改后的代码如下
所以对每个变量所代表的含义要特别清楚才能在代码实现的时候更加的清晰。
整体代码如下,如果需要下载代码请移步到文末
代码:GitHub
文章首发公众号和个人博客:
公众号:无心的梦呓(wuxinmengyi)
这是一个记录红队学习、信安笔记,个人成长的公众号
扫码关注即可
博客:http://blog.seclibs.com/ 安全库:http://www.seclibs.com/ 记录红队相关学习笔记
来源:oschina
链接:https://my.oschina.net/u/3677719/blog/3161830