前言
“数据结构”是计算机和信息技术相关专业的核心基础课程,是一门理论与实践并重的课程。该课程理论性较强,原理和算法比较抽象,如何能将理论知识和实际应用有机地结合起来,提高学生的数据抽象能力和算法设计能力,习题练习和上机实验是两个至关重要的环节。
本书的主教材《数据结构(C语言版)第2版》(ISBN978-7-115-37950-4)自2015年2月出版至今,已经多次印刷,印数10万余册,深受读者的好评。主教材中包含部分经典习题,但未给出相应解答,读者一直期待出版一本与教材配套的习题和实验指导。为了满足广大读者的迫切需求,编者总结多年“数据结构”课程的理论教学和实验教学、研究生入学考试的命题和试卷评阅的经验,并结合学生学习的实际需求,编写了本书。
全书由两篇组成。
第一篇分为8章,每章包括知识提要和习题解答,第二篇为实验指导。本书主要特色如下。
(1)知识提要部分结构直观、考点清晰
每章首先以树状的知识导图形式给出本章的主要知识点,直观易读。然后以简洁的语言明确地指出了本章应该掌握的知识要点,对知识点进行了凝练和升华,以帮助学生梳理知识点。
(2)习题解析部分内容全面、解答精细
围绕知识提要中要求掌握的重要知识点,结合研究生入学考试大纲的要求,在习题部分设计了选择题、应用题和算法设计题。每种题型首先给出的是主教材中的全部习题,然后按年代顺序依次给出了2009—2016年全国统考考研试题(在题号后面以【20**年第*题】形式标注)。为了保证覆盖每章的全部重要考点,某些章同时精选了其他一些经典试题。题目内容全面,解题思路清晰,解答过程详尽。对于算法设计题,首先以文字形式给出算法思想,再以类C语言形式给出相应的算法描述。
(3)实验指导部分面向实际、模式创新
根据各章的教学重点和难点,结合了具体的实际应用,有针对性地编写了课程实验与课程设计题目。总计包括8个实验题目,涵盖了线性表、栈、串、树和图的基本数据结构和算法,最后还给出了1个综合性较强的课程设计题目,涵盖了重要的查找和排序算法。值得一提的是实验模式的创新,编者将实验教学中传统的以算法为主线的体系结构改为以问题为主线的体系结构,将传统的实验题目改编为ACM试题形式,通过具体问题描述给出实验题目。8个实验题目可在北京林业大学ACM在线评测系统(http://101.200.220.237)上完成。系统可自动评判,进而能够减轻教师的负担,系统可显示每道题目的提交情况,进而能够提高学生的积极性和主动性。实验题目已在北京林业大学信息学院2015级计算机类和信息专业类的教学中使用,测试数据已得到全面验证,准确无误,这种创新的实验模式得到了学生的一致认可和好评。
本书的编写宗旨是力图通过大量的典型习题解析和实验指导,帮助学生快速掌握并灵活运用数据结构的基本理论和算法,辅助教师讲授课程和指导学生实践。本书给出了包括主教材中所有习题在内的习题参考答案和解析,这些解答只供学习者作为参考,切不可完全依赖于它。如果在未做习题之前就先看答案,那就与编者的初衷背道而驰了,为此编者特将答案与题目相分离,希望学习者在深入思考后再查看解析。另外,有关算法设计题目的解答有多种,本书提供的解答并不一定是唯一的。学习者可以针对题目多加思考,设计出不同的程序,并加以比较和分析。
在本书的编写过程中,北京林业大学信息学院的研究生苏翔同学特此为全国统考考研试题的8道算法设计真题制作了算法动态演示,檀稳、刘建波、李东远、李鹭、庄婷婷、纪芳、闫楚依、赵培雯等同学参加了有关程序的调试工作和文字校对工作,张宇奇、韦立宁、孙涛同学参加了实验题目的改写工作,吴顶立同学在结合我们的习题学完数据结构之后,感触颇深,赋词一首,在此表示衷心的感谢!
因编者水平有限,书中错误在所难免,恳请读者批评指正。
《青玉案-数据结构习题解析与实验指导》
数构习题创新作。
据精细,点脉络。
结取实验相指导。
构筑基础,通习算法,一朝终学成。
要点疑难全攻破。
多往线上解评测。
做题勿畏DEBUG。
题多练习,习多不惑,古来完全策。