数据结构之单链表

首先我们要分析为什么要链表

那么我们就要先分析顺序表的优缺点

数据结构之单链表_第1张图片

数据结构之单链表_第2张图片

首先我们要确定链表的结构是一个数据存放的空间,指向下个结点的指针域

数据结构之单链表_第3张图片

然后我们实现打印和创建新的节点

数据结构之单链表_第4张图片

然后我们实现头插和尾插

数据结构之单链表_第5张图片

数据结构之单链表_第6张图片

这个地方有一个易错点

首先对尾插来说,如果我们插入的是第一个,那么我们就要让PList=第一个节点的地址

但是,如果我们直接phead=第一个节点的地址,那么就只是改变了形参而非改变了实参

所有我们要用二级指针pphead去对plist进行改变!

同理对头插也要用二级指针,否则就无法对plist进行操作

接下来就要写尾删和头删

数据结构之单链表_第7张图片

主要是要主要不能让最后一个节点的指针域仍然指向一个地址(原本的下一个节点,free以后已经是野指针)。

接下来是插入

数据结构之单链表_第8张图片

数据结构之单链表_第9张图片

还有删除

数据结构之单链表_第10张图片

数据结构之单链表_第11张图片

由于我们要传入的pos是地址,所有我们要去查找到对应位置的地址

下面是查找的实现。

数据结构之单链表_第12张图片

你可能感兴趣的:(数据结构,链表)