数据结构是计算机专业的一门重要的专业必修课,是绝大多数高校招收计算机专业及相关专业硕士研究生的必考科目之一。
本课程主要研究数据在计算机中的存储和操作。它涉及一系列较为实用的算法,这些算法在实际的程序设计中是非常有用的。但这门课程内容丰富、学习量大,其算法又十分抽象。经过多年的教学实践,总结出一些该课程的课程特点和教学方法,为此,我们编写了这部教材,以满足广大同学的要求和计算机教学的需要。
本书在《数据结构(C语言版)》(第2版)的基础上,秉承注重实用和便于学习的宗旨,删除了动态存储管理一章的内容,调整了部分章节的内容和结构,优化了算法的代码并给出了详细注释,在文字表述和习题设置等方面又进行了反复的推敲并做了相应修改。
本书共10章,第1章为概述,主要介绍数据结构的简单发展史、基本概念和算法的描述与分析方法;第2章为线性表,主要介绍顺序表和各种链表的存储表示与实现;第3章为特殊线性表,主要介绍栈、队列和串的存储表示与实现;第4章为数组和广义表,主要介绍数组和广义表的存储表示与实现;第5章为树和二叉树,主要介绍二叉树的基本知识、性质、存储、遍历及其应用;第6章为图,主要讨论图的基本概念、存储、遍历及其应用;第7章为查找,主要介绍静态查找、动态查找和散列表;第8章为内部排序,分别介绍几种常用的排序算法及性能;第9章为外部排序,主要研究在内存和外存之间如何调动和组织数据进行排序;第10章为文件,主要讨论文件在外存储器中的表示方法和各种运算的实现方法。
本书的算法都用C语言函数实现,无须任何修改即可被其他函数调用。本书结构合理,内容紧凑,知识连贯,逻辑性强。为了使读者更好地掌握所学内容,各章末配有精选的大量习题,可使读者快速熟悉和掌握所学的知识。本书既适合用作计算机专业的本、专科教材,也适合用作与计算机学科相关的其他专业的教材。
本书第1和第5章由马靖善编写;第2~4章由秦玉平编写;第6章由周连秋编写;第7章由王丽君编写;第8章由冯佳昕编写;第9章由沈泽刚编写;第10章由李春杰编写。全部书稿由范立南和秦玉平审校,所有算法由马靖善和王丽君调试。
在本书编写过程中,编者参考了大量有关数据结构的书籍和资料,在此对这些参考文献的作者表示感谢。
由于编者水平有限,书中难免存在错误和不当之处,恳请广大读者批评指正,以便再版时改进。
注: 目录中带的章节可选讲;带的章节为专科选学。
本书受2014年辽宁省普通高等学校本科教育教学改革研究项目(UPRP20140661)资助。
编者2015年5月