图书前言

前言

“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等),而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一些核心内容,是从事计算机科学及其应用的科技工作者必须掌握的。

数据结构课程的教学目标是要求学生学会分析研究计算机加工的数据对象的特征,以便在实际应用中选择适当的数据结构、存储结构和相应算法,初步掌握算法的时间与空间性能分析技巧,并培养复杂程序设计的技能。

数据结构课程的主要特点如下:

 内容丰富、学习量大;

 隐含在各部分内容中的方法和技术多;

 贯穿全书的动态链表存储结构和递归技术往往不容易掌握,算法设计具有动态性和抽象性,看懂听懂与掌握会用之间具有相当大的距离。

这些特点使得这门课程的学习难度很大,许多学生在解答习题所需要的各种方法和技术都在教科书中,只不过其形式多样,需要仔细体会才能掌握。

本书是《21世纪计算机专业大专系列教材》中《数据结构》的配套教材,除了给出主教材中所有的习题提示、解析和答案之外,还针对各章的内容适当地补充了一定数量的习题(带*号的习题),并给出答案及解析。全书共分 9章,包括数据结构基础知识、线性表、栈和队列、串、数组和广义表、树与二叉树、图、查找和排序。本书与“数据结构”课程主要内容紧密结合,对开拓思路具有启发作用,有助于对课程的掌握。在该配套教材中,使用类 C语言作为算法描述语言,且所有算法都可以在任何一种 C语言的开发环境中实现。在随书的配套光盘中可以看到这些算法的 C语言程序。

本书的出发点是帮助学生进一步学好“数据结构”这门课程,所以在使用本书的过程中需要注意以下几点。

(1) 同步学习、打好基础。与课程内容学习同步,有利于进一步理解掌握各种知识点和巩固课堂教学的效果。

(2) 认真理解,动手练习。算法设计具有非惟一性,本书对算法设计题目给出了一种或者几种算法答案,要在学习、理解、领会的基础上动手设计算法程序,这样才会取得良好的效果。

(3) 举一反三、触类旁通。课程的内容是有限的,但是运用所介绍的知识、方法和技术解决的实际问题是无限的,重在掌握基本原理、基本方法和基本技术,并注意灵活运用。

由于习题较多,在解答上可能存在疏漏之处,欢迎读者批评指正;如果有问题需要与作者联系,请发送电子邮件到:pengbo_cau@sina.com。

本教材由彭波编写,在上机实现教材中所有算法的过程中得到了孙一林、许振文、胡治国、吕小晴、崔永普、王茜等同志的帮助,在此表示感谢。

编者2002.9