前言
第1章 绪论
1.1 数据结构
1.1.1 逻辑结构
1.1.2 存储结构
1.2 算法
1.2.1 算法的定义
1.2.2 算法分析
1.3 常用的算法
1.3.1 穷举法
1.3.2 贪婪法
1.3.3 递推法
1.3.4 递归法
1.3.5 分治法
1.3.6 回溯法
习题
第2章 线性表
2.1 线性表存储及基本操作
2.1.1 顺序表及基本操作
2.1.2 单链表及基本操作
2.1.3 单向循环链表及基本操作
2.1.4 双向链表及基本操作
2.2 线性表的应用
2.2.1 单向循环链表合并
2.2.2 约瑟夫问题
2.2.3 多项式相加
2.3 栈
2.3.1 栈的定义
2.3.2 顺序栈
2.3.3 链式栈
2.4 栈的应用
2.4.1 进制转换
2.4.2 单面电路板布线判断
2.4.3 表达式计算
2.4.4 迷宫求解
数据结构与算法应用
2.5 队列
2.5.1 队列的定义
2.5.2 循环队列
2.5.3 链式队
2.6 队列的应用
2.6.1 模拟键盘输入循环缓冲区
2.6.2 货运火车车厢调度
2.6.3 农夫过河问题
2.6.4 迷宫求解
习题
第3章 线性表扩展
3.1 数组及特殊矩阵
3.1.1 一维数组的顺序存储
3.1.2 二维数组的顺序存储
3.1.3 特殊矩阵的压缩存储
3.2 稀疏矩阵及压缩存储
3.3 稀疏矩阵压缩存储的应用
3.3.1 稀疏矩阵的转置
3.3.2 稀疏矩阵的乘法运算
3.4 字符串
3.4.1 基本概念
3.4.2 字符串的基本操作
3.5 字符串的模式匹配
3.5.1 简单匹配算法
3.5.2 KMP算法
3.5.3 Sunday算法
3.5.4 ShiftAnd算法
3.5.5 字符串模式匹配应用
习题
第4章 树和二叉树
4.1 树
4.1.1 树的定义和基本术语
4.1.2 树的存储方法
4.1.3 树的性质
4.1.4 表达式树
4.2 二叉树
4.2.1 二叉树的基本概念
4.2.2 二叉树的性质
4.2.3 满二叉树和完全二叉树
4.2.4 二叉树的存储
4.2.5 二叉树的遍历
4.2.6 二叉树的构建及操作
4.3 线索二叉树
4.4 二叉树的应用
4.4.1 计算二叉树的高度
4.4.2 后缀表达式的转换
4.4.3 哈夫曼树及编码
习题
第5章 图
5.1 图的定义和基本术语
5.2 图的存储
5.2.1 邻接矩阵
5.2.2 邻接表
5.2.3 邻接多重表
5.3 图的遍历
5.3.1 纵向优先搜索
5.3.2 横向优先搜索
5.4 图的应用
5.4.1 地图的着色
5.4.2 最小生成树
5.4.3 最短路径
5.4.4 拓扑排序和关键路径
习题
第6章 查找
6.1 线性查找
6.1.1 顺序查找
6.1.2 对分查找
6.1.3 斐波那契查找
6.1.4 分块查找
6.2 树表查找
6.2.1 二叉排序树
6.2.2 平衡二叉树
6.3 哈希表
6.3.1 哈希表概念
6.3.2 哈希函数构造方法
6.3.3 哈希表解决冲突的方法
习题
第7章 排序
7.1 基本概念
7.2 冒泡排序和快速排序
7.3 插入排序和希尔排序
7.4 选择排序和堆排序
7.5 归并排序和基数排序
习题
参考文献
展开