图书前言

数据结构是计算机专业的一门重要的专业必修课,是绝大多数高等学校招收计算机专业及相关专业硕士研究生的必考科目之一。

本课程主要研究数据在计算机中的存储和操作,它涉及一系列较为实用的算法,这些算法在实际的程序设计中是非常有用的。但这门课程内容丰富、学习量大,其算法又十分抽象。经过多年的教学实践,我们总结出一些该课程的特点和教学方法,为此,编写了这部教材,以满足广大同学的要求和计算机教学的需要。

本书是在第1版的基础上修改而成的,主要是将原书第2章分解为两章,并对全书中的算法重新进行了编写和补充,使之更加适合于读者学习和掌握各种算法的基本思想和用法。

本书共分11章。第1章为概述,主要介绍了数据结构的简单发展史、基本概念和算法的描述与分析方法;第2章为线性表,主要介绍了顺序表和各种链表的存储表示与实现;第3章为特殊线性表,主要介绍了栈、队列和串的存储表示与实现;第4章为数组和广义表,主要介绍了数组和广义表的存储表示与实现;第5章为树和二叉树,主要介绍了二叉树的基本知识、性质、存储、遍历及其应用;第6章为图,主要讨论图的基本概念、存储、遍历及其应用;第7章为查找,主要介绍了静态查找、动态查找和散列表;第8章为内部排序,分别介绍了几种常用的排序算法及性能;第9章为外部排序,主要研究在内存和外存之间如何调动和组织数据进行排序;第10章为动态存储管理,主要研究系统如何响应用户的请求分配内存和回收内存;第11章为文件,主要讨论文件在外存储器中的表示方法和各种运算的实现方法。

本书的算法都用C语言函数实现,不作任何修改就可被其他函数调用。本书结构合理,内容紧凑,知识连贯,逻辑性强。为了使读者更好地掌握各章节内容,各章末均配有精选的大量习题,可使读者快速熟悉和掌握所学的知识。本书既可作为计算机专业的本、专科教材,也可作为与计算机学科相关的其他专业的教材。  本书第1、5章由马靖善编写,第2~4章由秦玉平编写,第6章由周连秋编写,第7章由王丽君编写,第8章由冯佳昕编写,第9章由沈泽刚编写,第10章由彭霞编写,第11章由李春杰编写。全部书稿由范立南和秦玉平审校,所有算法由马靖善和王丽君调试。

在本书编写过程中,编者参考了大量有关数据结构的书籍和资料,在此对这些参考文献的作者表示感谢。

由于编者水平有限,书中难免存在错误和不当之处,恳请广大读者批评指正,以便再版时改进。

注:目录中带的章节为可选内容;带的章节为专科选学。

编者