第一讲 线性表的基本概念
-
线性表的定义
- 线性表是一个具有相同特性的数据元素的有限序列。
- 相同特性:所有元素属于同一数据类型。
- 有限:数据元素个数是有限的。
- 序列:数据元素有逻辑序号唯一确定。一个线性表中可以有相同值的元素。
- 线性表是一个具有相同特性的数据元素的有限序列。
-
线性表的作用
- 存放数据 - 作为存放数据的容器
- 基本运算 - 完成更复杂的功能
-
线性表的知识结构
-
线性表重要的知识点
- 线性表两类存储结构的差异。
- 每种存储结构中基本运算的实现算法。
- 利用线性表求解实际问题。
- 利用有序表特性设计高效算法。
第二讲 线性表的顺序存储结构
-
线性表的顺序存储结构 - 顺序表
- 线性表的顺序存储结构:把线性表中的所有元素按照顺序存储方式进行存储。
- 按逻辑顺序一次存储到存储器中一片连续的存储空间中。
-
顺序表类型定义
第三讲 顺序表算法设计
-
顺序结构算法设计:数据采用顺序表存储,利用顺序表的基本操作来完成求解任务。
-
例题
第四讲 单链表
-
线性表的链式存储 - 链表
- 线性表每个阶段有唯一的前驱节点和后继节点。
- 设计链式存储结构时,每个逻辑节点存储单独存储,为了表示逻辑关系,增加指针域。
- 每个物理节点增加一个指向后继节点的指针域 -> 单链表
- 每个物理节点增加一个指向后继节点的指针域和一个指向前驱节点的指针域 -> 双链表。
-
单链表的特点
- 当访问过一个节点后,只能接着访问它的后继节点,而无法访问它的前驱节点。
-
建立单链表
- 头插法建表
- 从一个空表开始,创建一个头节点
- 依次读取字符数组a中的元素,生成新节点
- 将新节点插入到当前链表的表头上,直到结束为止
- 尾插法建表
- 从一个空表开始,创建一个头节点
- 依次读取字符数组a中的元素,生成新节点
- 将新节点插入到当前链表的表尾上,直到结束为止
- 头插法建表
第五讲 单链表的算法设计
- 以查找为基础的算法设计
- 按照条件进行节点查找
- 进行插入或者删除操作
- 以建表算法为基础的算法设计
- 单链表有尾插法和头插法两种建表方法。
- 很多算法以这两个建表算法为基础进行设计。