线性表的链表存储:

一、单链表定义:

用代码定义一个单链表:

不带头结点的单链表定义:

带头结点的单链表定义:

单链表定义总结:

二、单链表的基本操作(插入+删除+查找)


1、插入
如何在 带头结点 的链表中按位序插入

代码实现:

如何在 不带头结点 的链表中按位序插入
代码实现:

指定结点后插操作

带头结点的指定节点后插操作

指定结点前插操作
通过头指针便利链表可以找到所有结点的地址
时间复杂度更简单的 指定结点前插操作:
思路:在指定结点后插入元素,然后调换两个结点的数据内容。

2、删除
按位序删除(带头结点)思路

代码实现:

时间复杂度更简单的 指定结点删除方式:

这种情况删结点,如果结点是最后一个的话第五行代码会执行出错。并且想要删除最后一个结点只能用第一种方式。
单链表的局限性:无法逆向检索,使用的时候有时候不方便。

3、查找

按位查找:


按值查找:

求表长:

总结:
三、单链表的建立

尾插法:

优化尾插法:
优化每次进入插入函数都需要找表尾的函数循环。用一个表尾指针代替。

头插法:
每次都从头结点进行尾插操作

常应用于链表的逆置。
总结:





















