前言 在计算机的各个领域中,都会用到各种各样的数据结构。学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,编制相应的算法是软件开发人员所不可缺少的知识。 这是一本为两个学期的数据结构和编程课程而设计的教材。本书具有以下特点: 一、将数据结构原理和算法分析技术结合为一体。 该书的算法分析技术让我们可以纵向比较不同的数据结构的时空开销,这有利于我们根据实际问题来选择一定的数据结构,设计出真正高效的算法,这才是学习数据结构的最终目的,也是读者对数据结构的教材的最大期望。 二、本书采用的描述语言是当前最流行的语言,C/C++语言。这也是当前应用最广泛的语言。 本书中的许多程序和算法,很有可能被你马上应用到实际的软件项目中去。当然,用何种语言来描述数据结构是次要的问题,但是运用合适的语言能更好的体现抽象数据结构类型的概念。 三、理论与实践并重,具体应用占用了大部分的篇幅。 许多经典的问题在书中都有介绍,比如,汉诺塔、哈夫曼树等等。通过对书中简洁的源代码的分析,读者可以对它们达到深入的了解。只有通过对示例的深入学习,才能真正的掌握程序设计语言和数据结构,本书就是示例相当精彩的一本书。 四、提供了大约400个问题和练习,类型和难度各异。 在每一节结束的位置,都提供了很多的练习。可分为四类:技能练习、需要对程序和算法进行修改的练习、更有挑战性的练习、包括新的主题的完整开发的练习题组。 在计算机领域中任何好的创意和设计,最终都需要通过高水平的程序设计实现,才能够真正成为有社会价值、市场价值的产品。本书在这个方面是非常有价值的。 近年来,程序设计环境取得了巨大的进步。但是,功能强大的程序开发环境未必能造就出更优秀的程序员。现在有越来越多这样的学生,他们对编程环境十分熟悉,但距离程序设计高手却相差甚远。主要原因就在于他们对算法和数据结构选择,程序的结构设计和良好编码的各种要素不得要领。通过对本书内容和示例的学习,可以帮助软件开发人员在程序设计上得到锻炼和提高。 本书既可作为高等院校计算机相关专业教材,也可供广大从事计算机应用的科技人员参考。 由于本书覆盖面广,时间较紧,翻译难度确实比较大,虽然在翻译中下了不少功夫,并用了较长的时间进行校对,但在译文中仍难免出现一些疏漏。真诚地希望认真的、有见识的同行们和朋友们不吝赐教。 全书由李化组织翻译,参加翻译的人员还有潇东、齐宁、陈大峰、栾景美、郭卫锋、周卓、梁列权、胡班等,全书最后由李化统稿。由于翻译期限较短,书中难免存在一些不足和错误之处,敬请广大读者批评指正,我们的电子邮件是csh999@263.net。