前 言
从1972年Dennis Ritchie在贝尔实验室发明C语言之始,再加上Linux与开放源代码的发展,使得C语言影响力日益强大。C语言之所以长时间以来屹立不倒,除了是一种结构化的程序设计语言外,还具备强悍的硬件处理能力,C语言同时具有高级程序设计语言与低级程序设计语言的特性,因而它又被人们称为中级程序设计语言。
所谓“数据结构”,其实就是讲述基于数据结构的算法,就是为解决问题所采取的方法和步骤,是培养程序设计逻辑的基础理论。程序解决问题的能力是否有效率,数据结构及算法就是其中的关键。市面上有许多数据结构相关的书籍,常会介绍大量的理论或是在书上举例去表达数据结构及算法的核心概念,帮助用户理解各种数据结构及算法的核心概念,但是这类书缺乏完整的结合程序设计语言的实现实例,因而对于第一次接触数据结构的初学者来说,将它们运用于实际应用就成了跨不过去的鸿沟。
为了帮助更多人用比较轻松的方式了解各种算法的重点,包括分治法、递归法、贪心法、动态规划法、迭代法、枚举法、回溯法等,以及应用不同算法所延伸出的重要数据结构(例如数组、链表、堆栈、队列、树、图、排序、查找、哈希等),本书特别采用丰富的图例来阐述数据结构及算法的基本概念,并将数据结构及算法概念进行言简意赅的诠释和举例,同时使用C语言编程实现算法,以期能将各种数据结构及算法真正应用于学习者将来的程序设计中。因此,这是一本学习数据结构的入门教科书。
然而,一本好的数据结构教科书,除了内容的完备专业外,更需要有清楚易懂的结构安排及表达方式。希望本书可以帮助读者在轻松的学习氛围下对算法这门基础理论有比较深刻的认识。
作者敬笔