前言“数据结构”是计算机专业的一门重要的专业必修课,是绝大多数高校招收计算机及相关专业硕士研究生的必考科目之一。 本课程主要研究数据在计算机中的存储和操作,它涉及一系列较为实用的算法,这些算法在实际的程序设计中是非常有用的。但这门课程内容丰富、学习量大,其算法又十分抽象。经过多年的教学实践,我们总结出该课程的一些课程特点和教学方法,为此,我们编写了这部教材,以满足广大学生的要求和计算机教学的需要。 本次再版在保持前三版写作风格和特色的基础上,依据读者的建议,主要做了以下改进: (1) 删除了“文件”一章和第7章“键树”一节的内容; (2) 调整了第1章、第5章和第6章及其他部分章节的结构和内容; (3) 更新了部分例题和习题; (4) 所有算法均在Visual C++ 6.0/2010环境下调试通过,并给出了详细注释; (5) 在知识表述方面进行了反复推敲并做了相应修改。 本书共9章,第1章为概述,主要介绍数据结构的简单发展史、基本概念和算法的描述与分析方法;第2章为线性表,主要介绍顺序表和各种链表的存储表示与实现;第3章为特殊线性表,主要介绍栈、队列和串的存储表示与实现;第4章为数组和广义表,主要介绍数组和广义表的存储表示与实现;第5章为树和二叉树,主要介绍二叉树的性质、存储、遍历及其应用;第6章为图,主要讨论图的存储、遍历及其应用;第7章为查找,主要介绍静态查找、动态查找和散列表;第8章为内部排序,主要介绍几种常用的内部排序算法及性能;第9章为外部排序,主要介绍在内存和外存之间如何调动和组织数据进行排序。 本书的算法都使用C语言函数实现,不用做任何修改即可被其他函数调用。本书结构合理,内容紧凑,知识连贯,表述简洁,逻辑性强。为使读者更好地掌握各章节的内容,各章末均配有大量精选习题,可使读者快速熟悉和掌握所学的知识。本书既可作为计算机专业的本、专科教材,也可作为与计算机学科其他相关专业的教材。 本书第1章、第5章和第8章由马靖善编写、修改;第2~4章由秦玉平编写、修改;第6章由冷强奎编写、修改;第7章由王丽君编写、修改;第9章由沈泽刚编写、修改。全书由秦玉平统稿,所有算法由秦玉平和冷强奎调试。 本书配有辅教材《数据结构(C语言版)学习与实验指导》(第4版),由清华大学出版社出版发行。 在本书的编写过程中,编者参考了大量有关数据结构的书籍和资料,在此对这些参考文献的作者一并表示感谢。 由于编者水平有限,书中难免存在错误和不当之处,恳请广大读者批评指正。 注:目录中带有“”的章节可选讲;带有“”的章节为专科学生选学。 本书受到辽宁省“兴辽英才计划”教学名师项目(XLYC1906015)的资助。 本书的课件和源代码可从清华大学出版社官方网站下载。 编者2021年6月