单链表是一种常见的数据结构
一、结构特点
1. 由一系列节点组成,每个节点包含数据域和指向下一个节点的指针域。
2. 最后一个节点的指针域为 null,表示链表的结尾。
二、主要操作
1. 插入节点:可以在链表的头部、尾部或特定位置插入新节点。
- 头部插入:操作简单,只需将新节点的指针指向原链表的头节点,然后更新链表头指针。
- 尾部插入:需要遍历链表找到最后一个节点,然后将其指针指向新节点。
- 特定位置插入:先找到目标位置的前一个节点,然后进行插入操作个节点,然后进行插入操作。
2. 删除节点:可以删除链表中的特定节点。
- 首先找到要删除节点的前一个节点,然后将其指针指向要删除节点的下一个节点。
3. 查找节点:通过遍历链表,根据特定条件查找目标节点。
三、优点
1. 动态内存分配:可以根据需要动态地增加或减少链表的长度,不需要预先确定链表的大小。
2. 插入和删除操作高效:在特定位置进行插入和删除操作时,只需修改指针,时间复杂度为 O(1)(在头部或尾部插入/删除)或 O(n)(在特定位置插入/删除,n 为链表长度)。
四、缺点
1. 访问特定位置的节点效率低:需要从头节点开始遍历链表,时间复杂度为 O(n)。
2. 不支持随机访问:无法像数组那样通过下标直接访问特定位置的元素。
示例:
创建一个结构体
构建单链表的框架和函数的基本功能
SList.h文件
SList.c文件
打印链表
头部插入数据
创建节点
尾部插入数据
尾部删除数据
头部删除数据
查找数据
查到pos位置数据,然后在pos前面插入数据
查到pos位置数据,然后在pos后面插入数据
查到pos位置的数据,然后删除pos这个点的数据
查到pos位置的数据,然后删除pos后面那个的数据
test.c文件
对这个链表的基本处理