图书前言

数据结构是计算机专业一门重要的专业必修课,是多数高校计算机专业及相关专业研究生入学考试的必考科目之一。

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

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

本书的算法都用C语言函数实现,几乎不用做任何修改就可被其他函数调用。本书结构合理,内容紧凑,知识连贯,逻辑性强。为了使读者更好地掌握各章节内容,各章(除第9章外)均配有精选的大量习题,可使读者快速熟悉和掌握所学的知识。本书既适用作计算机专业的本、专科教材,也适用作与计算机学科相关的其他专业的教材。

本书第1,4章由马靖善编写;第2,3章由秦玉平编写;第5章由周连秋编写;第6章由王丽君编写;第7章由冯佳昕编写;第8章由沈泽刚编写;第9章由彭霞编写;第10章由李春杰编写。全部书稿由范立南和秦玉平审校,所有算法由马靖善和王丽君调试。

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

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

注:目录中带“**”的章节可选讲;带“*”的章节为选学内容。

编 者2005年6月