图书前言

前    言

  本书订正了第2版中的笔误、描述不规范等问题,简化了使用不多的内容;每章的编程项目都有完整的C程序实现代码,并都在VC++6.0环境下编译通过,运行正确。

  数据结构是计算机科学与技术专业的专业基础课,是十分重要的核心课程。它侧重于体系和思想上的训练,是程序设计的灵魂,为计算机语言课程设计提供了方法性的理论指导,所有的计算机系统软件和应用软件都要用到各种类型的数据结构。算法与数据结构之间存在着相辅相成的关系。解决一个问题既可以选择不同的数据结构,也可以选择不同的算法。数据结构的选择决定了算法执行所需要的时间与空间,影响算法的效率;反之,算法的优劣又决定了某个数据结构是否适合解决这个问题。

  全书共分为9章,由浅入深、系统地讨论了各种数据结构的基本概念和相关操作,还介绍了查找和排序算法。各章的具体内容介绍如下。

  第1章是绪论,介绍了学习数据结构和算法的意义、数据结构和算法的基本概念,并且指出了数据结构和算法之间的关系,给出了分析算法的方法。

  第2章主要介绍了线性表的概念、抽象数据类型及其基本操作,最后列举了一些线性表的应用实例。

  第3章主要介绍了受限制的线性表,即栈和队列;重点介绍了栈和队列的抽象数据类型及其实现,并列举了几个应用实例。

  第4章主要介绍了串这一非数值数据结构,包括串的抽象数据类型及其基本操作与串的模式匹配算法。

  第5章介绍了数组这一数据类型在计算机中的存储,重点介绍了稀疏矩阵在计算机中的压缩存储及其操作的实现,同时还介绍了广义表的概念。

  第6章讨论了树形结构及其相关算法。

  第7章讨论了图形结构及其相关算法。图形结构是一种复杂的数据结构,其应用也非常广泛,该章在介绍了图的遍历算法以后还采用遍历算法推导出了其他常用算法。

  第8章讨论了在线性表和树上的查找算法,还介绍了期望查找复杂度为O(1)的哈希表查找算法。

  第9章重点介绍了插入排序、选择排序、交换排序、归并排序和基数排序等算法及其思想和分析,在最后还介绍了外部排序算法。

  本书示例较多,讲解细致,对数据结构中的重点和难点内容进行了深入的剖析,着重培养学生的动手能力,突出实用性;对经典算法、重点算法及应用算法进行了详细的讲解,以使学生更好地掌握数据结构的应用。本书采用类C语言来描述算法。类C语言是伪码和C语言组合而成的一个描述工具,采用了C语言的核心部分,并为描述方便进行了扩充。

  本书可作为计算机及相关专业的大学本科教材,也可作为应用型专业以及成人教育、工程技术人员的培训教材。

  本书主要由陈琳琳、李建林任主编,由孙启虎、李橙、郭龙源任副主编。何光明、赵传申、许娟、王珊珊、石雅琴、郑爱琴、许悦、陈珍、陈凤、卢振侠、曹冬梅、杨橙、陈莉萍等人员在内容编写、程序测试、文字校对等工作中也付出了辛勤劳动,在此一并表示衷心的感谢!

  本书配有电子教案,并提供程序源代码,以方便读者自学,请到清华大学出版社网站下载。

  限于作者水平,书中难免存在不当之处,恳请广大读者批评指正。任何批评和建议请发至Book21Press@126.com邮箱。

  

                                                                编  者