首页 > 图书中心 >图书详情
数据结构(C语言版)(第2版)
作者:殷人昆
丛书名:清华大学计算机系列教材
定价:49.50元
印次:2-9
ISBN:9787302459897
出版日期:2017.05.01
印刷日期:2022.12.16
本书是根据教育部《高等学校计算机科学与技术专业公共核心知识体系与课程》编写的数据结构主教材。全书共8章。第1章介绍数据结构的地位和主要知识点,数据结构和算法的基本概念和算法分析的简单方法,以及C语言编程的要点。第2~8章分别介绍了线性表、栈和队列及其应用、多维数组、特殊矩阵、稀疏矩阵、字符串和广义表、树与二叉树、图、查找、排序,并做了适当延伸。作者在讨论每一个知识单元时,结合30多年教学的经验和考试辅导的体会,合理安排教材内容,力求透彻、全面,对学生读书容易忽略的地方和隐藏在书中所讨论问题后面的东西都有适当的提示。 本书的编写得到清华大学2015年精品教材建设项目的资助。本书既可作为高等学校计算机科学与技术专业和软件工程专业本科生学习数据结构与算法课程的教材,也可以作为计算机专业考研的辅导教材或其他计算机或软件考试的复习教材,还可作为计算机或软件系统开发人员的参考资料。
more >第2版前言 本书第2版的初稿完成于2015年12月,作为另一本教材《数据结构精讲与习题详解》(第2版)的写作参照,相互融合,相互补充,首先完成了该书,再回过头来第二次修改本书,所以本书实际上是第2版的修订本。 自从1978年美籍华人冀中田第一次在中国讲授“数据结构”课开始,很多老师对课程的内容和讲授方法做了大量的研究,也可以说是在做中学,总结出许多好的经验,使得课程的教学比当时进步了很多。我本人在这门课程的教学中也积累了一些心得,非常希望与正在学习这门课程的同学们分享,这是我修改这本教材的初衷。 既然数据结构与算法相辅相成,密不可分,而算法就是解决问题的过程描述,那么,描述数据结构与算法的语言就应该是过程性的。早期用伪代码描述,实践证明不可持续,因为很多用伪代码描述的算法转换为使用某种编程语言编写的程序后,怎么也通不过。原因是很多人编程语言的实践能力太差,算法的实现细节太粗糙。所以我认为,使用某种过程性语言,如C、C++等,对于学习和实现数据结构与算法是合适的。 由于数据结构课程学时的限制(多数学校为48~64学时),作为本科生的教材,包含的知识容量应有一定限度。知识点太少,学生在未来的学习和工作中可联想的思考空间狭窄,使解决问题的能力受限;知识点太多,必然沦为百科全书式的阅读,基础不牢靠,同样使得解决问题的能力受限。通过教学实践证明,本书的第1版在内容上取材是恰当的,范围上取材的深度和广度也是恰当的,但联想不够,某些算法的实现上偏向使用伪代码描述,造成部分读者在学习上和实践上的困惑。本书第2版修改部分包括: (1)在结构上从第1版的10章改为8章,虽然章数压缩了,但叙述内容不减反增。增加的知识点大多作为“扩展阅读”出现,它们不作为考核内容,主要是拓展视野。 (2)各章的“想想看”改为“思考题”,目的是增加一些互动环节。这些思考题触及的都是可联想的内容,或者是对理解正文有用的知识“点拨”。所谓“学问”就是有“学”还要有“问”。正面的“问”有助于理解“应该做什么”,反面的“问”有助于理解“不该做什么”。 (3)书中所有使用C语言书写的算法,包括辅助教材《数据结构精讲与习题详解》(第2版)中的800道算法题,都重新使用VC++ 6.0编译程序调试过,有的还按照软件工程的要求做了边界值测试。因为书中算法的正确运行需要构建运行环境,所以对于书中所涉及的主要数据结构的存储表示,绝大多数都在第2版给出了结构定义、初始化或创建算法、输出算法等,这样可由读者自行搭建运行环境。 (4)第3章增加了多栈共享同一存储时的栈浮动技术、递归程序的非递归模拟方法、优先队列的内容;第4章增加了w对角矩阵的压缩存储、稀疏矩阵的链表存储、串的BM模式匹配算法的内容;第5章增加了等价类与并查集的内容;第6章增加了构造最小生成树的破圈法、Dijkstra算法的内容;第7章增加了跳表、红黑树、伸展树、字典树的内容。此外对保留的内容有部分增删。教材现有内容基本覆盖大多数学校的教学大纲和考研大纲。 (5)附录增加了词汇索引,书中出现的重要概念都收录在索引中,大大方便了读者查阅相关的词汇。 各章所附习题不包括选择题,但精选了许多综合应用题,这些习题的参考解答请参看作者的另一本配套教材《数据结构精讲与习题详解》。 因为作者的水平有限,可能在某些方面有考虑不周的地方,书中难免存在疏漏或错误,诚恳希望读者提出宝贵意见。 作者的E-mail地址是yinrk@tsinghua.edu.cn或yinrk@sohu.com。 作 者 2016年8月于清华大学
more >