C++数据结构第21课、线性表的链式存储结构
1、存在的问题
顺序存储结构线性表的最大问题是:插入和删除需要移动大量的元素,如何解决这个问题?
2、线性表的链式存储结构
链式存储的定义:数据元素除了存储本身的信息外,还要存储其直接后继的信息
在物理内存中无相邻关系
- 链式存储逻辑结构
— 基于链式存储结构的线性表中,每个结点都包含数据域和指针域
数据域:存储数据元素本身
指针域:存储相邻结点的地址
3、专业术语的统一
— 顺序表
基于顺序存储结构的线性表
— 链表
基于链式存储结构的线性表
4、链表中的基本概念
— 头结点
链表中的辅助结点,包含指向第一个数据元素的指针
— 数据结点
链表中代表数据元素的结点,表现形式为:(数据元素,地址)
— 尾结点
链表中的最后一个数据结点,包含的地址信息尾空
- 单链表的结点定义
- 单链表的内部结构
头结点在单链表中的意义:辅助数据元素的定位,方便插入和删除,因此,头结点不存储实际的数据元素
5、在目标位置处插入数据元素
6、在目标位置处删除数据元素
小结:
- 链表中的数据元素在物理内存中无相邻关系
- 链表中的节点都包含数据域和指针域
- 头结点用于辅助数据元素的定位,方便插入和删除操作
- 插入和删除操作需要保证链表的完整性