图书前言

程序=数据结构+算法

——著名的计算机科学家沃斯(Nikiklaus Wirth)

“数据结构”是高等学校计算机科学与技术、软件工程和网络工程专业及其他相关专业的一门核心专业基础课程,也是计算机类专业研究生入学考试全国统考课程。本书正是为了满足人才培养和研究生入学考试发展的需要,经过多年的国内多所著名高校实际教学凝炼而成。

自从著名的计算机科学家沃斯将程序设计形象地用上面的公式表示出来后,这条“黄金定律”便成为了人们学习程序设计、进行程序开发的准则。要想成为一名真正专业的程序设计人员,基本的数据结构基础和常用的算法知识是必须掌握的,脱离了这两点编写出来的程序一定不是健壮的好程序。

然而单纯地掌握了一些数据结构基础和常用的算法知识也是远远不够的。空洞地掌握所谓的数据结构和算法等理论知识只是纸上谈兵,这些知识必须要依托于一门程序设计语言才有生命力,才能转化成真实的程序代码,才能真正地解决实际问题。

本书就是将数据结构基础和常用的算法知识与目前广泛应用、最具有群众基础的C语言相结合。本书的写作思想是理论与实践相结合,以实践为核心,以实例为主要内容。

首先,本书总结归纳了数据结构基础、常用的排序查找算法和经典的算法思想,提纲挈领地阐述了核心的理论知识。这样可以使没有系统学习过或者不熟悉数据结构和算法等知识的读者对这部分知识有一个基本了解,并掌握基本的数据结构知识和常用而经典的算法思想,以便更加深入地学习本书的其他内容。

其次,本书列举了大量的编程实例,这些题目都按照知识体系进行了内容上的划分。本书列举的这些编程实例都是一些比较灵活有趣的题目,有些题目渗透了巧妙的算法思想,有些题目则必须借助特殊的数据结构才能更加容易解答。通过这些题目的训练,可以使读者开阔眼界、启迪思维、提高编程的兴趣。最重要的是能够提高读者算法设计,灵活应用各种数据结构,编写程序解决实际问题的能力。

1. 本书阅读指南

本书共分为12章,各章主要内容如下。第1章介绍数据与结构、数据结构与算法等概念。

第2章介绍线性表的顺序存储方式和链式存储方式以及它们的各种应用。

第3章介绍栈的两种存储形式和基本操作、递归算法、表达式的应用、后缀表达式的计算、迷宫问题等。

第4章介绍队列的两种存储形式和基本操作、循环队列的使用等。

第5章介绍串的基本操作、串的两种存储结构,以及如何进行串的匹配;简述了串操作在文本编辑中的应用,包括输入文本、插入文本和删除文本。

第6章介绍数组的基本操作、各种特殊矩阵的压缩方法,以及稀疏矩阵三元表的构造、基本运算的实现。广义表部分主要介绍了广义表的存储结构和应用。

第7章介绍树的基本概念、二叉树的各种操作、树的两种遍历方法,详细说明了线索二叉树的构造方法和运算二叉树的原理及使用方法,介绍了树和森林与二叉树是如何转换和遍历的,最后介绍了哈夫曼树及哈夫曼编码。

第8章介绍图的存储形式,重点介绍了图的两种遍历方法、最小生成树以及Dijkstra算法和Floyd算法,最后简单地介绍了拓扑排序和关键路径的基本原理。

第9章介绍静态查找表和动态查找表以及哈希表的构造和冲突解决办法。

第10章介绍各种排序算法的原理,并比较了它们的时间复杂度、空间复杂度、稳定性、待排序记录数n的大小和记录本身信息量的大小。

第11章主要在前述章节所授数据结构和算法的基础上,介绍经典算法。

第12章主要给出了复杂数据结构+海量数据条件下,大数据时代的数据挖掘方法和技术简述。

2. 本书特色

(1) 结构清晰,知识完整,内容翔实,系统性强,依据高校教学大纲组织内容,并将实际经验融入基本理论之中。

(2) 入门快速,易教易学,突出“上手快、易教学”之特点,以教与学的实际需要取材谋篇。

(3) 学以致用、注重能力,以基础理论实验经典题库为主线编写,每一章都设置了实验和经典剖析,以便于读者掌握重点,提高分析问题和解决问题的能力。

(4) 示例丰富,步骤明确,讲解细致,突出了可操作性。

3. 本书读者定位

本书适合对数据结构和算法设计有兴趣的入门人员阅读,也可作为学习过C语言程序设计的人士继续深造的理想读物。另外,本书可以作为具有一定经验的程序设计人员巩固和提高编程水平、查阅相关算法实现和数据结构知识的参考资料。

同时,本书可以作为高等院校计算机专业及相关专业的教材,还适合考研复习之用。

本书由李千目、殷新春、李涛主编,徐建、张宏副主编,参加编写的还有侯君、莫璇、林棋、吴小雄。全书框架结构由何光明拟定。另外,卢振侠、王珊珊、石雅琴、陈珍、陈莉萍、杨橙、陈海燕、张居晓、刘菁、吴婷、李佐勇等同志也参与了资料整理、校对等工作,本书还参阅了严蔚敏、李宛洲等学者的研究,在此一并感谢。

限于作者水平,书中难免存在不当之处,恳请广大读者批评指正。

  作者

                                         2014年10月