0%

数据结构之单链表-c语言实现

常用的链表有单链表、双向链表和循环链表,这次只完成了单链表的c语言实现,在写代码中所遇到的问题在代码注释中也都有标注,在实现上最关键的还是对整体结构的理解,只有对整体结构有一定的了解,才能在具体的代码实现中少走很多的弯路,在具体的代码实现过程中,要着重关注每一个变量的内容和具体的含义,只有搞清楚了这一点才能在实现的时候不出现一些莫名其妙的问题。

比如在这次实现中,就碰到了在插入初始插入数据的时候,输出的内容一直与插入时相反,也就是说,起初预想的是每次插入数据都是在最后一位进行插入,而实际情况是从开头进行插入的,在仔细研究完代码后,发现了问题所在

我们在第一次插入数据的时候,情况是这样的

但是如果再继续往后面插入的时候,由于list所指的内存地址并没有改变,所以插入的情况是这样的

就造成了输出与输入呈倒序的方式,所以只需要将list所指向的内存地址进行变化就可以了,修改后的代码如下

所以对每个变量所代表的含义要特别清楚才能在代码实现的时候更加的清晰。

整体代码如下,如果需要下载代码请移步到文末

代码:GitHub


2020/1/29更新

在文章发出之后,有收到朋友对代码的批评

这里我确实要说一下对不起了,自己对c语言确实没有完全的了解,现在也是在借助学数据结构的过程练一练代码,在学校学的c语言本就c不c,c++不c++的,在之后的运用当中,我尽力去避免这些错误的出现,希望大家可以多多帮助,多多提问题。

我已对这两处问题进行修改,代码如下

代码:GitHub


2020/1/31更新

继续对代码进行了修改,请查看最新链接

代码:GitHub