前 言
数据结构一直是计算机科学领域非常重要的基础课程,它除了是各大专院校信息工程、信息管理、通信工程、应用数学、金融工程(计算金融)、计算机科学等信息类相关科系的必修科目外,近年来包括电机、电子甚至一些商学院管理科系也将数据结构列入选修课程。同时,一些信息类相关科系的研究生入学考试、专业等级考试等,数据结构都列入必考科目。由此可见,无论从考试的角度,或是研究信息科学理论知识的角度,数据结构确实是有志从事信息类工作的专业人员不得不重视的一门基础课程。
要学好数据结构的关键在于能否找到一本易于阅读,并将数据结构中各种重要理论、算法等进行详实地诠释及举例的图书。市面上以Java程序设计语言来实现数据结构及其算法的图书相对比较缺乏,本书是一本讲述如何将数据结构概念以Java程序设计语言来实现的著作。为了方便学习,书中的范例程序都是完整的,可以避免片断学习造成的困扰,如此安排,就是希望帮助学习者更加顺畅地阅读,同时也方便了老师的教学和对程序代码的解说。另外,本书也在下载文件提供了完整的范例程序代码,省去了用户必须自行键入的时间,方便练习和教学之用。
本书的特色在于将较为复杂的理论以图文并茂的方式来表达。为了避免在教学和阅读上的不顺畅感,书中的算法尽量不以伪代码进行说明,而是以Java程序设计语言来完整展现。另外,为了评估读者各章的学习成果,在书中安排了大量的习题,这些题目包含考试的例题,希望读者可以更加灵活地应用各种知识。
这次改版的重点是加入了许多算法的介绍,包括:分治法、递归法、贪心法、动态规划法、迭代法、枚举法、回溯法等。针对不断有Java 最新JDK的发布,本书附录提供了有关Java 10开发环境下载、安装和设置的简介。本书范例程序的集成开发环境采用的是“Eclipse”软件,它是一套开源(Open Source)的Java IDE工具,Eclipse集成了编译、执行、测试及调试功能。
一本好的理论书除了内容的专业性外,更需要有清晰易懂的结构安排。在仔细阅读本书之后,相信读者能体会笔者的用心,也希望读者能对这门基础学科的知识和理论有更完整的认识。
作者敬笔