第一节 数据结构学科形成和发展的背景 1
第一章 绪论 1
第二节 程序设计方法及语言 2
第三节 基本概念及术语 2
一、数据 2
二、数据元素 3
三、逻辑结构 3
四、存储结构 3
五、数据结构 3
七、算法 4
六、数据类型 4
第四节 抽象数据类型 5
第五节 数据的逻辑结构 5
一、数据的逻辑结构的分类 5
二、数据的逻辑结构的表示方法 6
第六节 数据的存储结构 6
第七节 算法分析 9
一、算法的特点 9
三、算法分析 10
二、好的算法的特征 10
第八节 算法分析举例 11
第二章 线性表 13
第一节 线性表的逻辑结构及其基本操作 13
第二节 线性表的顺序存储结构——顺序表 13
一、顺序表 13
二、顺序表上的基本操作 14
三、顺序存储结构的特点 16
二、问题求解 17
一、问题的提出 17
第三节 顺序表应用实例——约瑟夫问题 17
三、问题的高级语言描述 18
四、算法分析 19
第四节 线性表的链式存储结构——链表 19
一、单链表 20
二、双向链表 26
第五节 静态链表 27
第六节 链表应用 28
第一节 栈的定义 31
第三章 栈和队列 31
第二节 栈的存储结构 32
一、顺序栈 32
二、链接栈 33
第三节 栈应用—数制转换 34
第四节 队列 36
第五节 队列的存储结构 37
一、顺序队列 37
二、链接队列 39
一、问题叙述 40
第六节 队列的应用——比赛问题 40
二、问题分析 41
三、具体算法及相关的类型定义 41
第四章 串与数组 44
第一节 串的定义及运算 44
一、串的定义 44
二、串的运算 45
第二节 串的存储结构 46
一、顺序存储 46
二、链式存储 47
第三节 串基本操作的实现(求子串) 48
第四节 串的模式匹配 49
第五节 数组 51
一、数组的定义 51
二、数组的性质 52
三、数组的基本操作 52
第六节 矩阵 52
一、矩阵的定义 52
二、矩阵的存储表示 53
三、特殊矩阵的压缩存储 54
第七节 稀疏矩阵的压缩存储 55
一、稀疏矩阵的三元组顺序表 55
二、稀疏矩阵的三元组十字链表 56
第五章 树和二叉树 61
第一节 树的定义和基本术语 61
一、树的定义 61
二、树的表示形式 62
第二节 树的存储结构 63
一、树的线性存储 63
二、树的链式存储 65
三、基本操作的实现 66
第三节 二叉树 67
一、二叉树的定义 67
二、二叉树的性质 68
三、二叉树的抽象数据类型 69
四、二叉树的存储结构 70
第四节 二叉树的遍历 73
一、二叉树的遍历 73
三、线索树 76
二、二叉树的非递归实现 76
四、树的遍历 79
五、树、森林和二叉树的相互转换 80
第五节 Huffman树与Huffman编码 81
一、最优二叉树 81
二、Huffman编码 83
三、Huffman编码的存储和算法实现 84
第六章 图 88
第一节 图的基本概念 88
一、图的定义 88
二、图的术语 89
第二节 图的存储结构 91
一、图的数组存储结构:邻接矩阵 91
二、图的链式存储结构(一):邻接表 93
三、图的链式存储结构(二):邻接多重表 95
第三节 图的遍历 97
一、深度优先搜索 97
二、广度优先搜索 98
第四节 最小生成树 99
一、最小生成树的概念 100
二、Prim算法 101
三、Kruskal算法 102
第五节 拓扑排序 103
一、有向无环图 103
二、拓扑排序 104
三、关键路径 106
第六节 图的最短路径 112
一、从某个源点到其余各顶点的最短路径 112
二、所有顶点间的最短路径 116
第一节 概述 119
第七章 排序 119
第二节 简单排序 120
一、插入排序 120
二、冒泡排序 122
三、选择排序 124
四、几种排序方法的比较 126
五、希尔排序 126
第三节 先进排序 129
一、快速排序 129
二、归并排序 132
三、堆排序 133
第四节 基数排序 135
第五节 各种排序方法的综合比较 139
一、时间性能 140
二、空间性能 140
三、排序方法的稳定性能 140
四、对排序方法的选择 141
第六节 应用实例 142
第八章 查找表 147
一、顺序查找表(Sequential Search) 148
第一节 静态查找表 148
二、有序查找表 150
三、索引顺序表 151
第二节 动态查找表 152
第三节 哈希表 158
一、哈希表的概念 158
二、哈希函数的构造方法 160
三、处理冲突的方法 161
四、哈希表的查找 163
第一节 概述 166
第九章 文件 166
第二节 顺序文件 168
第三节 索引文件 169
一、索引文件概述 169
二、索引文件的操作 171
三、利用查找表建立多级索引 171
四、动态索引 172
第四节 散列文件 173
第五节 多重表文件 174