图书目录

目录

扫一扫

源码下载

第1章绪论/

1.1什么是数据结构/

1.1.1数据结构的定义/

1.1.2数据的逻辑结构/

1.1.3数据的存储结构/

1.1.4数据的运算/

1.1.5数据结构和数据类型/

1.2算法及其描述/

1.2.1什么是算法/

1.2.2算法描述/

1.2.3C++语言描述算法的要点/

1.3算法分析/

1.3.1算法的设计目标/

1.3.2算法的时间性能分析/

1.3.3算法的存储空间分析/

1.4数据结构的目标/

1.5练习题/

1.6上机实验题/

1.7疑难问题解析及其扩展/

第2章线性表/

2.1线性表的定义/

2.1.1什么是线性表/

2.1.2线性表的抽象数据类型描述/

2.2线性表的顺序存储结构/

2.2.1线性表的顺序存储结构——顺序表/

2.2.2线性表基本运算算法在顺序表中的实现/

2.2.3顺序表的应用算法设计示例/

2.3线性表的链式存储结构/

2.3.1链表/

2.3.2单链表/

2.3.3单链表的应用算法设计示例/

2.3.4双链表/

2.3.5双链表的应用算法设计示例/

2.3.6循环链表/

2.4顺序表和链表的比较/

2.5线性表的应用——两个多项式相加/

2.5.1问题描述/

2.5.2问题求解/

2.6STL中的线性表/

2.6.1vector向量容器/

2.6.2list链表容器/

2.7练习题/

2.8上机实验题/

2.9疑难问题解析及其扩展/

第3章栈和队列/

3.1栈/

3.1.1栈的定义/

3.1.2栈的顺序存储结构及其基本运算算法的实现/

3.1.3顺序栈的应用算法设计示例/

3.1.4栈的链式存储结构及其基本运算算法的实现/

3.1.5链栈的应用算法设计示例/

3.1.6STL中的stack栈容器/

3.1.7栈的综合应用/

3.2队列/

3.2.1队列的定义/

3.2.2队列的顺序存储结构及其基本运算算法的实现/

3.2.3循环队列的应用算法设计示例/

3.2.4队列的链式存储结构及其基本运算算法的实现/

3.2.5链队的应用算法设计示例/

3.2.6STL中的queue队列容器/

3.2.7队列的综合应用/

3.2.8STL中的双端队列和优先队列/

*3.3栈和队列的扩展——单调栈和单调队列/

3.3.1单调栈/

3.3.2单调队列/

3.4练习题/

3.5上机实验题/

3.6疑难问题解析及其扩展/

第4章串/

4.1串的定义/

4.2串的存储结构/

4.2.1串的顺序存储结构——顺序串/

4.2.2串的链式存储结构——链串/

4.3STL中的string/

4.4串的模式匹配/

4.4.1BF算法/

4.4.2KMP算法/

4.5练习题/

4.6上机实验题/

4.7疑难问题解析及其扩展/

第5章数组和稀疏矩阵/

5.1数组/

5.1.1数组的基本概念/

5.1.2数组的存储结构/

5.1.3数组的应用/

5.2特殊矩阵的压缩存储/

5.2.1对称矩阵的压缩存储/

5.2.2三角矩阵的压缩存储/

5.2.3对角矩阵的压缩存储/

5.3稀疏矩阵/

5.3.1稀疏矩阵的三元组表示/

5.3.2稀疏矩阵的十字链表表示/

5.4练习题/

5.5上机实验题/

5.6疑难问题解析及其扩展/

第6章递归/

6.1什么是递归/

6.1.1递归的定义/

6.1.2何时使用递归/

6.1.3递归模型/

6.1.4递归与数学归纳法/

6.1.5递归的执行过程/

6.1.6递归算法的时空分析/

6.2递归算法设计/

6.2.1递归算法设计的步骤/

6.2.2基于递归数据结构的递归算法设计/

6.2.3基于归纳方法的递归算法设计/

6.3递归算法转换为非递归算法/

6.3.1迭代转换法/

6.3.2用栈模拟转换法/

6.4练习题/

6.5上机实验题/

6.6疑难问题解析及其扩展/

第7章树和二叉树/

7.1树/

7.1.1树的定义/

7.1.2树的逻辑结构表示方法/

7.1.3树的基本术语/

7.1.4树的性质/

7.1.5树的基本运算/

7.1.6树的存储结构/

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.3.4先序、中序和后序遍历非递归算法/

7.4二叉树的层次遍历/

7.4.1层次遍历的过程/

7.4.2层次遍历算法的设计/

7.4.3层次遍历算法的应用/

7.5二叉树的构造/

7.5.1由先序/中序序列或后序/中序序列构造二叉树/

*7.5.2序列化和反序列化/

7.6线索二叉树/

7.6.1线索二叉树的定义/

7.6.2线索化二叉树/

7.6.3遍历线索化二叉树/

7.7哈夫曼树/

7.7.1哈夫曼树的定义/

7.7.2哈夫曼树的构造算法/

7.7.3哈夫曼编码/

7.8树/森林与二叉树之间的转换及还原/

7.8.1一棵树与二叉树的转换及还原/

7.8.2森林与二叉树的转换及还原/

*7.9并查集/

7.9.1并查集的定义/

7.9.2并查集的实现/

7.10练习题/

7.11上机实验题/

7.12疑难问题解析及其扩展/

第8章图/

8.1图的基本概念/

8.1.1图的定义/

8.1.2图的基本术语/

8.2图的存储结构/

8.2.1邻接矩阵/

8.2.2邻接表/

8.3图的遍历/

8.3.1图遍历的概念/

8.3.2深度优先遍历/

8.3.3广度优先遍历/

8.3.4非连通图的遍历/

8.4图遍历算法的应用/

8.4.1深度优先遍历算法的应用/

*8.4.2回溯法及其应用/

8.4.3广度优先遍历算法的应用/

8.5生成树和最小生成树/

8.5.1生成树和最小生成树的概念/

8.5.2Prim算法/

8.5.3Kruskal算法/

8.6最短路径/

8.6.1最短路径的概念/

8.6.2Dijkstra算法/

8.6.3Floyd算法/

8.7拓扑排序/

8.7.1什么是拓扑排序/

8.7.2拓扑排序算法的设计/

8.8AOE网和关键路径/

8.8.1什么是AOE网/

8.8.2求AOE网的关键路径/

8.9练习题/

8.10上机实验题/

8.11疑难问题解析及其扩展/

第9章查找/

9.1查找的基本概念/

9.2线性表的查找/

9.2.1顺序查找/

9.2.2折半查找/

9.2.3索引存储结构和分块查找/

9.3树表的查找/

9.3.1二叉排序树/

9.3.2平衡二叉树和AVL树/

9.3.3红黑树/

*9.3.4STL中的关联容器/

9.3.5B树/

9.3.6B+树/

9.4哈希表的查找/

9.4.1哈希表的基本概念/

9.4.2哈希函数的构造方法/

9.4.3哈希冲突的解决方法/

9.4.4哈希表查找及性能分析/

*9.4.5STL中的哈希表/

9.5练习题/

9.6上机实验题/

9.7疑难问题解析及其扩展/

第10章排序/

10.1排序的基本概念/

10.2插入排序/

10.2.1直接插入排序/

10.2.2折半插入排序/

10.2.3希尔排序/

10.3交换排序/

10.3.1冒泡排序/

10.3.2快速排序/

10.4选择排序/

10.4.1简单选择排序/

10.4.2堆排序/

10.4.3堆数据结构/

10.5归并排序/

10.5.1自底向上的二路归并排序/

10.5.2自顶向下的二路归并排序/

10.6基数排序/

10.7各种内排序方法的比较和选择/

10.8外排序/

10.8.1生成初始归并段的方法/

10.8.2多路归并方法/

10.9练习题/

10.10上机实验题/

10.11疑难问题解析及其扩展/

参考文献/