零基础学算法(第4版)

张昆 戴艳
前言 “算法和数据结构”是计算机及其应用专业的一门核心课程,由于该课程的理论性较强,很多人觉得学习起来比较抽象,在学习时感觉掌握了相关知识,但是放下书本后又没有什么印象。其实,算法和数据结构课程的实践性是很强的,不只是要掌握理论上的方法,还必须将这些方法应用到程序设计的实践中去。鉴于此,作者编写了本书。本书没有详细介绍各种数据结构的原理,而是重点介绍各种数据结构的实现方法,及相应的具体程序代码。 书中的所有程序都是在Dev-C++开发环境中编写而成的,本书的附录简单介绍了该开发环境的使用。 本书内容 本书分上、下两篇,共10章。第1~5章介绍了常用算法和数据结构的相应代码,第6~8章介绍了使用数据结构和算法解决一些经典问题的程序,第9章介绍了部分信息学奥赛试题的解题代码,第10章给出了与算法和数据结构相关的常见面试题。各章内容如下: 第1章介绍一些基础算法的使用,如枚举(穷举)算法、递推算法、递归算法、分治算法、贪婪算法、试探算法、模拟算法等,并编写了相应的实例代码演示这些算法的具体实现方法。 第2章介绍简单数据结构的实现,主要有线性表、栈、队列这3种数据结构的相关操作代码和实例。 第3章介绍复杂数据结构的实现,主要有二叉树和图这两种数据结构的相关操作代码,并介绍了赫夫曼树、图的最小生成树、图的最短路径等相关代码。 第4章介绍常见的排序算法,包括冒泡排序法、快速排序法、简单选择排序法、堆排序法、直接插入排序法、希尔(Shell)排序法、合并排序法等常见排序方法的原理及实现代码。 第5章介绍常见的查找算法,包括顺序查找、折半查找、二叉排序树、索引查找、散列表等内容。 第6章介绍通过数据结构解决常见数学问题的内容,包括计算完数、亲密数、水仙花数,计算素数,哥德巴赫猜想,计算阶乘,求π的近似值,方程求解,矩阵运算,一元多项式运算等内容。 第7章介绍如何解决经典的数据结构问题,包…