链表的分类
链表的结构非常多样,以下情况组合起来就有8中结构
其中我们常用的有两种:
1.不带头单向不循环链表
2.带头双向循环链表
其中这个头指的是“哨兵位”,这个我在下一篇博客会将,这篇博客讲的是不带头单向不循环链表。
单链表的概念和结构
单链表和顺序表一样也是一种线性表
两者也有很多不同,具体如下:
链表在物理上不是连续的,但在逻辑上是连续的。这句话的意思是链表中的节点在内存中不是连续存储的,而是随机存储的,但每个节点之间又有某种联系使得能找到彼此。
我们可以把链表当成火车:
单链表的逻辑如下:
plist是“哨兵位”,我们暂且不看
功能代码实现
功能我直接给代码给你们看,第一次学看不懂是正常的,要自己自行画图并结合代码进行理解。不会画的欢迎随时留言或者私信小编,小编看到会及时回复(小编非常平易近人的)
单链表结构的定义
结构中有两个元素,一个是节点的值,一个是直线下一个节点的地址的指针next
要实现的功能和所需的头文件
链表的尾插
尾插之前我们需要先初始化一下,给个NULL表示当前链表是空链表
以下是尾插代码:
尾插之前我们需要先申请一个空间,申请空间的代码如下:
链表的头插
代码如下: