第1章 绪论
1.1 数据结构的基本概念
1.2 算法的描述
1.3 VC++6.0开发工具简介
1.4 算法的评价
1.4.1 评价算法的一般原则
1.4.2 算法复杂性的分析
1.5 应用示例及分析
小结
习题与练习一
第2章 线性表
2.1 线性表基本特征和基本运算
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.5 线性表的应用
2.5.1 顺序表的应用
2.5.2 一元多项式的算术运算
2.6 应用示例及分析
小结
习题与练习二
第3章 栈与队列
3.1 栈
3.1.1 栈的定义
3.1.2 栈的存储实现和运算实现
3.1.3 堆栈的应用
3.2 队列
3.2.1 队列的定义
3.2.2 队列的存储实现及运算实现
3.2.3 队列的应用
3.3 递归
3.4 应用示例及分析
小结
习题与练习三
第4章 串
4.1 串的定义及其基本运算
4.2 串的存储结构
4.2.1 串的顺序存储结构
4.2.2 串的链接存储结构
4.3 串的匹配运算
4.4 应用示例及分析
小结
习题与练习四
第5章 数组、特殊矩阵和广义表
5.1 多维数组
5.1.1 数组的定义和操作
5.1.2 多维数组的存储表示和寻址
5.2 特殊矩阵的压缩存储
5.2.1 对称矩阵
5.2.2 三角矩阵
5.2.3 带状矩阵
5.3 稀疏矩阵
5.3.1 稀疏矩阵的三元组表存储
5.3.2 稀疏矩阵的十字链表存储
5.4 广义表
5.5 应用示例与分析
小结
习题与练习五
第6章 树
6.1 树的定义和基本术语
6.2 二叉树
6.2.1 二叉树的基本概念
6.2.2 二叉树的主要性质
6.2.3 二叉树的存储结构
6.3 二叉树的遍历
6.3.1 二叉树的递归遍历
6.3.2 二叉树的非递归遍历
6.4 树和森林
6.4.1 树、森林与二叉树的转换
6.4.2 树和森林的存储表示
6.4.3 树和森林的遍历
6.5 线索二叉树
6.6 二叉排序树
6.7 平衡树
6.8 树的应用
6.8.1 等价类问题
6.8.2 最优二叉树——哈夫曼树
6.9 应用示例及分析
小结
习题与练习六
第7章 图
7.1 图的定义和基本术语
7.2 图的存储方式
7.2.1 邻接矩阵
7.2.2 邻接表
7.3 图的遍历
7.3.1 深度优先搜索(DFS)
7.3.2 广度优先搜索(BFS)
7.4 最小生成树
7.4.1 普里姆(Prim)算法
7.4.2 克鲁斯卡尔(Kruskal)算法
7.5 最短路径
7.5.1 从一个源点到其他各点的最短路径
7.5.2 每一对顶点之间的最短路径
7.6 拓扑排序
7.7 关键路径法
7.8 应用示例与分析
小结
习题与练习七
第8章 排序
8.1 排序的基本概念
8.2 3种简单排序方法
8.2.1 简单选择排序
8.2.2 冒泡排序
8.2.3 直接插入排序
8.3 堆排序
8.3.1 堆的概念
8.3.2 构建堆
8.3.3 利用堆排序
8.4 快速排序
8.5 希尔排序
8.6 归并排序
8.7 基数排序
8.8 应用示例及分析
小结
习题与练习八
第9章 查找
9.1 查找的基本概念
9.2 基本查找方法
9.2.1 顺序查找
9.2.2 二分查找
9.2.3 分块查找
9.3 树状查找
9.3.1 二叉排序树查找
9.3.2 B.树
9.4 哈希法
9.4.1 哈希法概述
9.4.2 哈希函数构造方法
9.4.3 处理冲突的方法
9.4.4 哈希法的查找运算
9.5 应用示例及分析
小结
习题与练习九
第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 分支界限法
小结
习题与练习十
第11章 实验与上机指导
实验1线性表及其运算
实验2栈与队列的实现及应用
实验3二叉树的存储与遍历
实验4图的存储与遍历
实验5排序
实验6查找
附录习题与练习解答
参考文献