首页 > 图书中心 > 数据结构精讲与习题详解(C语言版)(第2版)

前言

数据结构精讲与习题详解(C语言版)(第2版)第2版前言第2版前言

本书是《数据结构精讲与习题详解》的第2版,与前一版相比,它做了如下改变: 

(1) 对第1版参考答案中存在的代码错误和低效之处进行了全面修改。

(2) 局部改变了第1版的章节编排。将“树与二叉树”与“树的应用”合并为一章,将“内排序”与“外排序”合并为一章,将“二叉查找(排序)树”与“AVL树”调整到第7章“查找”中。

(3) 题量从1250 题增加到2840题,同时将“疑难点辨析”改为“判断题”,部分调整到“简答题”中。这是考虑到“判断题”更能够激发读者的深度思考。

(4) “知识点提要”部分没有如同主教材那样系统、详细地讨论有关知识点的细节,而是从复习的角度归纳了知识点的要点和容易忽略的细节。因此,如果要系统地学习数据结构的主要概念,还是应当以主教材为主,本书为辅,配合学习。

(5) 由于篇幅原因,“选择题”和“判断题”部分仅给出答案,删去了解析。因此,这两部分对于读者来说更需要“研读”而不应“走马观花”,不但要知其然,而且要知其所以然。对于“选择题”,首先要了解相关知识点的主要概念,如果有把握,可直接确定正确的选项;如果没有把握,可采用排除法,利用自己掌握的知识,排除那些不合理的选项。对于“判断题”,直接与主教材的内容有关,如果没有把握,最好先去温习主教材,但这要求选好主教材。

(6) 本书的“简答题”部分相当精彩,如果仔细研读之后必有大的收获。其内容包括简单的问答题、画图题、计算题、证明题。这些题直接与相关的数据结构和算法有关,通过这些题目,可加深对各种数据结构特点的理解,搞清容易忽略或容易混淆的概念,且对某些较复杂的算法,可以通过实例理顺其中的细节。

(7) 本书的“算法题”有700多题,一部分来自国内外的经典数据结构教材和题典,一部分来自各大学、各大公司的入学考试和入职面试,涵盖了各种数据结构和算法的应用,而且都已用Visual C++ 6.0调试通过。研读这些习题,对于提高读者分析问题和解决问题的能力很有帮助。希望读者每做完一道算法题都能够进行小结,把这类题的解题思路和辅助数据结构的应用牢记于心。

(8) 细节决定成败。对“数据结构”课程所讲的知识是否掌握得好,关键在于对细节是否把握得好。对课程的每一个知识点,通过练习从不同侧面理解其精髓,使得以后不论从什么角度,用什么表述方式提出问题,都能想到使用什么方法,利用什么数据结构来解决,这样才能够为以后的科研、开发打下坚实的基础。

本书实际上是一个题库,不同程度的读者可选择力所能及的题目来做。有些简答题和算法题比较难,不是考研或参加入职考试的读者可以不看它们。本书不设难度标识,无论多难的题目,只要看过参考答案,都能了解其解题思路。为此,本书在算法描述上尽可能做到简单、清晰、易读。

本书覆盖了数据结构与算法的主要知识点,但对于某些没有普遍列入数据结构教材的知识点,如红黑树、数字查找树、伸展树、跳表、左斜堆、B树、动态散列、k\|d树等,都没有涉及。这样取舍对于多数院校已经足够了。本书既可以作为大学计算机科学与技术或软件工程专业学习“数据结构”课程的辅助教材,也可以作为考研复习的辅导教材。

本书得到清华大学2015年度本科精品教材项目资助。在成书过程中得到清华大学计算机系和清华大学出版社相关老师的鼓励和支持,也得到家人的理解和照顾,本人在此一并表示感谢。限于本人的学识和能力,书中不可避免地还会有一些错误和欠缺,诚请读者多提宝贵意见。我的联系地址是yinrk@tsinghua.edu.cn或yinrk@sohu.com。

作者

2017年6月于清华园荷清苑数据结构精讲与习题详解(C语言版)(第2版)第1版前言第1版前言

“数据结构”是计算机技术与工程、软件工程及信息管理专业的一门必修的核心课程。“数据结构”课程的任务是讨论在应用问题求解时数据的逻辑组织、在计算机中的存储实现以及相关操作的算法。“数据结构”课程的目的是使学生掌握在实际问题解决过程中如何组织数据、如何存储数据和如何处理数据的基本方法,为进一步学习后续课程以及为以后从事软件开发和应用打下坚实的基础。

本书是清华大学出版社出版的《数据结构(C语言描述)》的配套教材。它不但汇集了《数据结构》常用习题的解析,还对教学中反映出来的许多不易通过自学理解的概念和知识做了讲解,并对学习“数据结构”课程提出了一些指导性建议和考试的样例。特别是紧扣了全国硕士研究生计算机专业联考的考试大纲,对“数据结构”的主要知识点做了归纳,对358处疑难点做了点拨,按照考试大纲规定的题型,对843道习题做了解答和分析,最后给出了2009—2012年的历年计算机联考的真题和答案。实际上总题量超过1250题。

在编写本教材的过程中,作者对网上流传的“1800题”、严蔚敏版习题的解答做了研究,还参考了国内外众多习题集或课程辅导,去除过时的、重复的、不适当的习题或试题,从中梳理了对复习和准备考试的学生有一定参考价值的习题。希望这种努力能够帮助有志于学好这门课程的同学掌握课程的基本知识和解题的基本技能,并基于此做深度的研究。

本书共分10章,覆盖了教育部高等学校计算机科学与技术专业教学指导委员会公布的《高等学校计算机科学与技术专业公共核心知识体系与课程》和教育部考试中心公布的《计算机科学与技术学科联考考研大纲》中有关数据结构的几乎所有知识点。第1章是计算机概论,主要涉及算法设计和分析的习题;第2章是线性表,注重链表上的算法设计与实现方面的习题;第3章是栈和队列,重点在栈和队列的应用;第4章是数组、串和广义表,重点在串;第5章讨论树、森林和二叉树,重点在二叉树的遍历和树与二叉树的转换及其相关的习题;为了深入学习树与二叉树的应用,第6章讨论了二叉查找树、AVL树、Huffman树、堆和并查集,之所以把堆结构归入这一章,是因为在下一章要用到它;第7章是图,重点在图的遍历、连通性和最小生成树、最短路径、拓扑排序等,在这一章还引用了分治法、减治法、回溯法、贪心法、动态规划、分枝限界法等常用算法设计策略。第8章是查找,重点在折半查找、散列法;第9章是内排序,第10章是外排序,对各种排序算法的方法和特点有很多练习。

每个知识点分4个层次展开。第一是“知识点复习”,由于篇幅有限,这部分内容以梳理主教材的知识点为主;第二是“疑难点辨析”,是对知识点中容易被学生忽略的细节进行点拨;第三是“选择题解析”,对知识点从正面或反面进行练习,以加深对概念的理解;第四是“应用题选讲”,对知识点的综合应用进行多种手段的训练,包括作图或计算、算法设计与分析等。为了使学习者不至于一下陷入题海之中,对题号上加“★”的可以先跳过它,待以后备考时再来看它。本书力求对各种可能的问题都有一个解决的思路和预案,从而达到一个熟能生巧、处变不惊的境界。

本书是基于多年来的教学实践整理而成的,希望能对广大读者的学习起到促进作用。但由于时间仓促和作者的水平所限,错误和疏漏在所难免,敬请读者提出宝贵意见。

作者的邮件地址是yinrk@tsinghua.edu.cn或yinrk@sohu.com,衷心希望与各位读者交流。

作者

2012年4月于清华园荷清苑

版权所有(C)2019 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802013248号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘