我是转专业学编程的一个普通研究生学生,初次接触c语言学习链表时,感觉碰到了一块巨大的石头,怎么也学不懂,上网搜索也没有一个很好的讲解能让我快速理解。最后在一个晚上绞尽脑汁,用了一个非常形象的理解帮助我学会了链表,现在我想分享给大家,后期有空我还会更新双链表、图论等相关基础知识点。
这里就默认大家都掌握了结构体的相关知识点。
要学会链表,首先要了解什么是指针。指针,是一种变量类型,与int,char类型一样,指针变量就是指向内存地址的一种变量,它储存的是一个一个内存地址,而这个内存地址可以指向int,char包括也可以指向指针(链表就是储存的指针,后面会具体讲解)等等类型(可以理解为指针是个内存地址,这个地址上可以存储各种类型的数据)。
简单讲解完指针的概念,我们来正式开始链表的讲解:
首先,链表是什么?我们可以把内存定义为一片未开发的原始森林,而链表就是在这个原始森林里开辟出来的一间一间的房子,然后通过指针(指路牌),依次把他们连接起来。而这些通过路牌连接起来的链表,就组成了一个村庄,有村庄就一定要有个村长或者说村委会,整个这一套,就是一个链表。下面是代码展示:
下图建立了两个链表的关键结构体,第一个结构体我们理解为一个一个的小房间,我们设定每个房子都储存了三个信息,房子的门牌号、几口人、路牌(用途只有一个,指向下一个房子),前两个根据你的诉求自行定义,而路牌,是链表