目录
第1章绪论
微课视频49分钟
1.1数据结构的范畴
1.1.1计算机处理问题的分类
1.1.2非数值性问题的求解
1.2数据结构发展的概况
1.3数据结构相关的概念
1.3.1数据的概念
1.3.2结构的概念
1.3.3类型的概念
1.4算法描述与算法分析
1.4.1算法的概念
1.4.2算法描述
1.4.3算法分析
习题
第2章线性表
微课视频63分钟
2.1线性表的类型定义
2.1.1线性表的定义
2.1.2线性表的抽象数据类型
2.2线性表的顺序表示及操作实现
2.2.1顺序表的定义
2.2.2顺序表的操作实现
2.3线性表的链式表示及操作实现
2.3.1单链表的定义
2.3.2单链表的操作实现
2.3.3循环链表
2.3.4双向链表
2.3.5静态链表
2.4线性表两种存储表示的比较
2.4.1基于空间的比较
2.4.2基于时间的比较
习题
第3章栈和队列
微课视频37分钟
3.1栈
3.1.1栈的类型定义
3.1.2栈的存储结构及操作实现
3.1.3栈与递归问题
3.2队列
3.2.1队列的类型定义
3.2.2队列的存储表示及操作实现
习题
第4章串
微课视频44分钟
4.1串的类型定义
4.1.1串的定义
4.1.2串的抽象数据类型
4.2串的存储表示及操作实现
4.2.1定长顺序存储表示
4.2.2堆分配存储表示
4.2.3串的块链存储表示
4.3串的模式匹配
4.3.1简单的模式匹配方法——BF算法
4.3.2改进的模式匹配方法——KMP算法
习题
第5章数组和广义表
微课视频46分钟
5.1数组
5.1.1数组的类型定义
5.1.2数组的顺序表示及操作实现
5.2矩阵的压缩存储
5.2.1特殊矩阵的压缩存储
5.2.2稀疏矩阵的压缩存储
5.3广义表
5.3.1广义表的类型定义
5.3.2广义表的链式表示及操作实现
习题
第6章树和二叉树
微课视频96分钟
6.1树
6.1.1树的类型定义
6.1.2树的存储表示及操作实现
6.2二叉树
6.2.1二叉树的类型定义
6.2.2二叉树的重要性质
6.2.3二叉树的存储表示及操作实现
6.2.4线索二叉树
6.3树和森林与二叉树的转换
6.3.1树与二叉树的转换
6.3.2森林与二叉树的转换
6.4哈夫曼树及其应用
6.4.1哈夫曼树
6.4.2哈夫曼编码
习题
第7章图
微课视频99分钟
7.1图的类型定义
7.1.1图的定义
7.1.2图的抽象数据类型
7.1.3图的遍历
7.2图的存储表示与操作实现
7.2.1邻接矩阵
7.2.2邻接表
7.2.3十字链表
7.2.4邻接多重表
7.2.5图的操作实现
7.3图的连通性及其应用
7.3.1无向图的连通分量
7.3.2生成树和生成森林
7.3.3最小生成树
7.4有向无环图及其应用
7.4.1拓扑排序
7.4.2关键路径
7.5最短路径
7.5.1单源最短路径
7.5.2其他最短路径
习题
第8章查找
微课视频100分钟
8.1查找的基本概念
8.2静态查找表
8.2.1静态查找表的类型定义
8.2.2顺序表的查找
8.2.3有序表的查找
8.2.4索引顺序表的查找
8.3动态查找表
8.3.1动态查找表的类型定义
8.3.2二叉排序树和平衡二叉树
8.3.3B-树、B+树和键树
8.4哈希表
8.4.1哈希表的定义
8.4.2哈希函数的构造
8.4.3处理冲突的方法
8.4.4哈希表上的查找
习题
第9章排序
微课视频89分钟
9.1排序的基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2希尔排序
9.3交换排序
9.3.1冒泡排序
9.3.2快速排序
9.4选择排序
9.4.1简单选择排序
9.4.2堆排序
9.5归并排序
9.5.12路归并排序
9.5.2归并排序
9.6基数排序
9.6.1多关键字排序
9.6.2链式基数排序
9.7排序方法比较
习题
第10章课程实验
10.1实验概述
10.1.1教学目的
10.1.2实验步骤
10.2实验内容
10.2.1线性表
10.2.2栈和队列
10.2.3串
10.2.4数组和广义表
10.2.5树和二叉树
10.2.6图
10.2.7查找
10.2.8排序
附录A习题参考答案
