第一部分 理论知识
第1章 绪论
1.1 数据结构与算法
1.1.1 数据结构的基本概念
1.1.2 算法的概念和特性
1.2 算法的描述和分析
1.2.1 算法的描述
1.2.2 算法的分析
1.3 典型例题
习题1
第2章 线性表
2.1 线性表的逻辑结构
2.2 线性表的顺序存储结构
2.2.1 顺序分配
2.2.2 线性表的操作
2.3 线性表的链式存储结构
2.3.1 线性链表的实现
2.3.2 线性链表的运算
2.3.3 循环链表
2.4 典型例题
习题2
第3章 栈和队列
3.1 堆栈
3.1.1 堆栈的定义和基本操作
3.1.2 顺序存储栈
3.1.3 链式存储栈
3.2 队列
3.2.1 顺序存储队列
3.2.2 链式存储队列
3.3 典型例题
习题3
第4章 字符串、数组和广义表
4.1 字符串基本概念
4.2 字符串的存储结构
4.2.1 串的顺序存储结构
4.2.2 串的链式存储结构
4.3 字符串的模式匹配
4.3.1 模式匹配的BF算法
4.3.2 模式匹配的KMP算法
4.4 数组的基本概念
4.5 矩阵的压缩存储
4.5.1 特殊矩阵的压缩
4.5.2 稀疏矩阵
4.6 广义表
4.6.1 广义表的存储结构
4.6.2 综合举例
4.7 典型例题
习题4
第5章 树
5.1 树的定义和术语
5.1.1 树的定义
5.1.2 树的基本术语
5.2 二叉树
5.2.1 二叉树的定义和性质
5.2.2 二叉树的存储结构
5.3 遍历二叉树
5.3.1 遍历二叉树的方法
5.3.2 遍历二叉树的函数
5.4 线索二叉树
5.5 树和森林
5.5.1 树的存储结构
5.5.2 树与二叉树的转换(通过二叉链表存储联系)
5.6 树的应用
5.6.1 二叉排序树
5.6.2 哈夫曼树
5.7 典型例题
习题5
第6章 图
6.1 图的基本概念
6.1.1 图的定义
6.1.2 图的相关术语
6.2 图的存储结构
6.2.1 邻接矩阵
6.2.2 邻接表
6.3 图的遍历
6.3.1 深度优先搜索(DFS)
6.3.2 广度优先搜索(BFS)
6.4 最小代价生成树
6.4.1 最小代价生成树的概念
6.4.2 构造最小生成树的PRIM算法
6.5 最短路径
6.5.1 从某个顶点到其他顶点的最短路径
6.5.2 每一对顶点间的最短路径
6.6 拓扑排序
6.7 典型例题
习题6
第7章 查找
7.1 线性表的查找
7.1.1 顺序存储线性表的查找
7.1.2 分块查找
7.1.3 链式存储线性表查找
7.2 树的查找
7.2.1 二叉树查找
7.2.2 平衡二叉树
7.2.3 B树
7.3 哈希表及其查找
7.3.1 哈希表
7.3.2 常见的散列函数
7.3.3 解决冲突的方法
7.4 典型例题
习题7
第8章 排序
8.1 选择排序
8.2 直接插入排序
8.2.1 顺序存储线性表的直接插入排序
8.2.2 链式存储线性表的直接插入排序
8.3 冒泡排序
8.3.1 顺序存储线性表的冒泡排序
8.3.2 链式存储线性表的冒泡排序
8.4 希尔排序
8.5 堆排序
8.6 快速排序
8.7 合并排序
8.8 典型例题
习题8
第二部分 实验部分
实验一 时间复杂度的计算
实验二 顺序存储线性表的操作(1)
实验三 顺序存储线性表的操作(2)
实验四 链式存储线性表的操作(1)
实验五 链式存储线性表的操作(2)
实验六 链式存储线性表的操作(3)
实验七 顺序栈的操作
实验八 顺序存储队列的进队列和出队列操作
实验九 字符串的操作
实验十 数组的操作
实验十一 广义表的操作
实验十二 树的操作
实验十三 图的操作
实验十四 二分法查找的操作
实验十五 插入排序的操作
实验十六 选择排序的操作
实验十七 快速排序的操作
实验十八 冒泡排序和希尔排序的操作
参考文献