高一凡所著的《数据结构算法解析(第2版)》为严蔚敏、吴伟民编著的《数据结构(C语言版)》(清华大学出版社出版,本书按惯例将其简称为严书)的学习辅导书,主要内容包括严书中各主要数据存储结构的基本操作函数、调用这些基本操作的主程序和程序运行结果以及严书中各主要算法的演示课件。
本书作者长期教授“数据结构”课程,有着独到的教学心得和先进的教学方法,教学效果显著,使“数据结构”的学习成为一件赏心乐事,深受学生喜爱。本书是作者多年教学经验的总结。
本书所有程序和算法演示课件均在计算机上运行通过,这些程序的源代码和算法演示课件可通过清华大学出版社的网站下载。
本书适用于使用严蔚敏、吴伟民编著的《数据结构(C语言版)》作为教材的高等学校学生和自学者,也可供使用其他《数据结构》教材者和软件编程人员参考,同时也是很好的考研参考书。
本书第1版受到了读者的好评,这对作者是莫大的鼓励。时隔数年,作者在教学实践中进一步积累了经验、方法、手段和心得体会。值此第2版出版之际,作者将这些新的成果与读者分享。
作者在第1版的基础上做了如下修改。
(1) 增加了包括大多数算法的演示课件。该演示课件是与算法逐语句对应的,并在教育部举办的“第十届全国多媒体课件大赛”中获得高教工科组三等奖。
(2) 在第3章增加了“离散事件模拟”一节。因为算法较复杂在第1版没有收入,第2版增加了该算法的演示课件,降低了理解算法的难度。
(3) 增加了“动态存储管理”一章(放在最后)。同样增加了该章算法的演示课件,降低了理解的难度。
(4) 去掉了第5章中广义表的内容。
(5) 去掉了第6章中线索二叉树的内容。
(6) 增加了平衡二叉树删除结点的操作函数,这是我曾经的学生曾金龙在课程设计中做的,后来又几经修改。对于这组函数我特别满意,特地收在书中与读者分享。
(7) 去掉了树形选择排序的算法。
(8) 对基数排序的讲述做了较大修改,着重强调基数排序适用于不等长字符串排序,更换了输入数据文件,增加了一些图,使得基数排序算法一目了然。
(9) 对第1版内容做了仔细的修订,有些算法的讲述也做了修改,在此无法一一细数。
本书所有程序都在Microsoft Visual C++ 6.0和Visual Studio C++ 2012下运行通过,稍做修改也可以在UNIX下运行通过。这些程序和算法演示课件都可通过清华大学出版社网站(www.tup.tsinghua.edu.cn或www.tup.com.cn)下载。
算法演示课件的工作量巨大,非我一人能够完成。我的同事李鹏给了我很大的帮助,我的许多学生也参与了课件的编写工作,他们的名字都出现在所做课件中。借此机会,向他们表示衷心的感谢!
尽管作者尽了最大努力,但限于水平,书中疏漏之处在所难免,希望读者不吝赐教,以便借助清华大学出版社网站及时改正。读者可通过505810175@qq.com与作者取得联系。
作者2014年12月于长安大学
第1章 绪论
1.1 抽象数据类型的表示与实现
1.2 算法和算法分析
第2章 线性表
2.1 线性表的类型定义
2.2 线性表的顺序表示和实现
2.3 线性表的链式表示和实现