第2版前言
本书第1版自出版以来,深受广大读者欢迎,被百余所学校选为“数据结构”课程的教材,并被评为“‘十二五’普通高等教育本科国家级规划教材”。为了更好地满足广大高等院校的学生对数据结构知识学习的需要,编者结合近几年的教学改革实践、科研项目以及广大读者的反馈意见,并参考了大量文献资料,对教材进行了仔细的修订。这次修订的主要内容如下。
(1)采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”的案例驱动思路来展开。每章使用一个有趣的“问题案例”开头,由该案例逐步引入新的数据结构,然后给出该数据结构的存储表示及各种基本操作的实现,之后进一步分析此案例,最终利用该数据结构来实现此案例。这样,学生便能体会到从问题求解到程序设计的转换过程,深刻理解数据结构在程序设计中的作用。
(2)算法讲解更加细致。学生学习数据结构最大的困难是不能将用文字表述的算法思想转换成程序。新教材中对每个算法思想进行详细阐述,将用文字描述的算法步骤与用类C语言表述的算法描述一一对应。尤其是对于有循环结构的算法,在算法步骤的描述中利用缩进的格式清晰地体现出了循环的执行过程。因为教材中的算法是由浅到深的,所以学生通过学习这些算法,在不知不觉中便逐步提高了将自然语言描述的算法转化为高级语言描述的程序的能力,真正提高了算法设计与算法实现的能力。
(3)优化教材内容。参考计算机专业最新的全国统考考研大纲,增加了大纲近两年新增的考点内容,如分块查找、外部排序等,有助于考研学生复习备考使用。
本书共8章内容,其中第1章为绪论,综述数据、数据结构和抽象数据类型等基本概念;第2章至第6章从抽象数据类型的角度,分别讨论线性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用;第7章和第8章分别讨论查找和排序,除了介绍各种实现方法之外,还着重从时间上进行定性或定量的分析和比较。本书突出了抽象数据类型的概念。对每一种数据结构,都分别给出相应的抽象数据类型规范说明和实现方法。
全书中采用类C语言作为数据结构和算法的描述语言,在对数据的存储结构和算法进行描述时,尽量考虑C语言的特色,同时兼顾数据结构和算法的可读性。学生在实际上机操作时,可以很容易地将本书中的数据结构和算法转换成C或C++程序。
为方便教师教学和学生学习,本书还提供了PPT教学课件、习题答案、源代码、教学大纲、实验指导,以及算法的Flash动态演示。读者可从人邮教育社区(www.ryjiaoyu.com)上免费下载。
本书可作为普通高等院校计算机和信息技术相关专业“数据结构”课程的教材使用,也可供从事计算机工程与应用工作的科技工作者参考。
在本书的编写过程中,北京林业大学信息学院的钟复之、陈忠富、金鑫、王岩琪、梅莎、赵九晗、张盛福、闫楚依、纪芳、赵培雯等同学参加了有关程序的调试工作和文字校对工作,李华颖、林怡、张琪、周纪文、苏翔、王玢玥、姚佳璐等同学参加了算法的Flash动态演示制作工作,在此表示衷心的感谢!
因编者水平有限,书中错误在所难免,恳请批评指正。
编者
2014年11月