图书简介:
第一篇 习 题 解 析
第1章 绪论习题解析 2
第2章 线性表习题解析 8
第3章 栈和队列习题解析 16
第4章 串习题解析 26
第5章 数组与广义表习题解析 36
第6章 树与二叉树习题解析 48
第7章 图习题解析 69
第8章 查找习题解析 92
第9章 排序习题解析 111
第二篇 算法上机实现
第10章 线性表算法上机实现 132
10.1 顺序表基本运算 132
10.2 在表头插入生成单链表 134
10.3 在表尾插入生成单链表 135
10.4 单链表基本运算 136
10.5 双向链表基本运算 139
10.6 静态链表 142
10.7 例2.1算法实现 144
10.8 例2.2算法实现 145
10.9 例2.3算法实现 147
10.10 例2.4算法实现 148
10.11 例2.5算法实现 150
第11章 栈和队列算法上机实现 152
11.1 顺序栈基本运算 152
11.2 链栈基本运算 154
11.3 循环队列基本运算 157
11.4 链队列基本运算 158
11.5 例3.1算法实现 160
11.6 例3.5算法实现 163
第12章 串算法上机实现 166
12.1 顺序串基本运算 166
12.2 生成链串与求串长、串连接运算 168
12.3 链串中求子串运算 170
12.4 链串中串插入运算 171
12.5 串的简单模式匹配 173
12.6 串的无回溯KMP匹配 174
第13章 数组与广义表算法上机实现 177
13.1 矩阵转置 177
13.2 矩阵的快速转置 179
13.3 稀疏矩阵的十字链表存储 181
13.4 生成广义表及求广义表长度和深度的运算 184
第14章 树与二叉树算法上机实现 188
14.1 二叉树的遍历 188
14.2 二叉树的非递归遍历 190
14.3 另一种后序非递归遍历二叉树的方法 192
14.4 按层次遍历二叉树 194
14.5 由二叉树的遍历序列恢复二叉树 196
14.6 二叉树遍历的应用 198
14.7 中序线索二叉树 200
14.8 哈夫曼树及哈夫曼编码 203
14.9 例6.4算法实现 207
第15章 图算法上机实现 210
15.1 建立无向图的邻接矩阵 210
15.2 图的深度优先搜索 211
15.3 图的广度优先搜索 213
15.4 图的连通性 216
15.5 深度优先生成树 219
15.6 广度优先生成树 221
15.7 最小生成树的Prim算法 224
15.8 最小生成树的Kruskal算法 225
15.9 单源点最短路径的Dijkstra算法 227
15.10 每一对顶点间最短路径的Floyd算法 229
15.11 拓扑排序 231
15.12 关键路径 233
第16章 查找算法上机实现 239
16.1 顺序查找 239
16.2 折半(二分)查找 240
16.3 分块查找 241
16.4 二叉排序树建立、节点的查找和删除 242
16.5 平衡二叉树的建立、节点的查找和删除 246
16.6 哈希(Hash)查找 252
第17章 排序算法上机实现 256
17.1 插入排序 256
17.2 折半插入排序 257
17.3 希尔(Shell)排序 258
17.4 冒泡排序 259
17.5 双向冒泡排序 260
17.6 快速排序 262
17.7 选择排序 263
17.8 双向选择排序 264
17.9 堆排序 265
17.10 归并排序的递归算法实现 267
17.11 归并排序的非递归算法实现 268
17.12 基数排序 270
参考文献 273
展开
数据结构是计算机及相关专业的主干课程之一,其目的是让读者学习、分析和研究数据对象的特性及数据的组织方法,以便读者选择合适的数据逻辑结构和存储结构,设计相应的运算操作,把现实世界中的问题转化为计算机的内部表示与处理方法。在信息科学领域中,尤其是在系统软件和应用软件的设计以及应用中要用到各种数据结构,因此,掌握数据结构对提高软件设计能力和程序编写水平有很大的帮助。
本书分为两篇。第一篇为习题解析:第1~9章分别是《数据结构教程》中各章的习题解析。该篇可在学习数据结构课程时同步使用,以帮助学生对数据结构知识的学习和掌握有一个比较全面、深入和系统的认识,达到使理论转化为能力的目的。习题解析部分是作者在多年讲授数据结构课程基础上总结、归纳编写而成的,大多数取自历年的考研试题。为了便于读者正确理解有关数据结构的概念,掌握解题思路、方法和技巧,各章的习题大多给出了详尽的解题过程,对有代表性的习题,也给出了详细的分析、归纳和说明。此外,针对某些难题,书中还给出了一些新的解题思路和方法。通过习题解析,引导读者由基本概念出发寻找求解数据结构问题普遍的思路和方法,并由此深化对理论知识的理解,达到举一反三、提高分析问题与解决问题能力的目的。由于习题许多都选自历届考研试题,因此也可作为考研复习资料。习题解析部分的各章算法习题都已通过上机验证,只不过由于书的篇幅所限,没有给出完整程序,其完整的实现程序见作者于西安电子科技大学出版社出版的《数据结构(C语言)实践教程(第二版)》一书。
第二篇为算法上机实现:第10~17章对《数据结构教程》中出现的算法和部分习题算法给出了近80个上机实现程序并涵盖了数据结构的所有内容,这对深入掌握和灵活运用数据结构知识,提高编程的思维、方法和实际动手能力都有很大的帮助。数据结构课程对理论与实践的要求都相当高,并且内容多、难度大,虽然大多数数据结构教材都强调了实践的重要性,但缺乏供学生实践练习的资料和环节,很多教材对算法的描述也只是概述性的伪代码,而无法直接上机实现,学生很难将这些算法转化为可实现的程序。本篇对《数据结构教程》中所有的算法都给出了上机实现程序和详细的程序注释,阅读起来一目了然,学生能够很快地掌握算法的精髓和实现手段,同时使学生对数据结构知识的实践与应用有一个比较全面、深入和系统的认识,达到理论与实践相结合的目的。通过上机实践,可以开拓学生的视野,培养学生的创新能力。此外,本篇给出的上机程序无论是从数据结构内容的全面性、完整性、实用性还是从程序设计的新颖性都具有突出的特点,因此它是一本难得的实用计算机辅助教材。由于作者水平所限,书中难免存在错误和不妥之处,敬请读者批评指正。
编 者
2018年5月
展开