图书前言

“数

据结构与算法”是计算机科学研究的主领域之一,是计算机科学与技术及相关专业学生必修的专业基础课,其核心知识单元包括: 基本数据结构、递归、数据类型和数据抽象、面向对象的程序设计、算法分析的基本方法和基本计算算法以及常用的算法设计策略。

在我国,数据结构和算法相关技术的研究以及课程的教学已经有30余年的历史,但是随着计算机学科的高速发展和高等教育体制的深刻变革,对课堂教学用的教材,包括自学的参考教材都提出了更多的不同层次上的要求,特别是为满足我国当前社会生产、生活以及各类经济活动的实际需求,迫切地需要既有理论基础又有实践能力的应用型专业人才,这就要求在教材中既要包含核心的、系统的理论内容,又要包括丰富的、操作性强的示例,使读者在明确数据结构与算法“是什么”的基础上,能够深刻理解通过学习能够“做什么”、掌握“怎么做”,同时获得如何能“做得更好”的启发。

数据结构主要研究的内容是数据、数据的关系以及数据的基本运算,算法主要研究的是问题求解的方法和效率,二者研究内容不同却又密切相关,有如“米”与“炊”,虽互相独立却彼此依存。因此本书将数据结构和算法二者有机结合,以简洁明了、一气呵成的方式完成实用理论到典型应用的学习过程,使读者可以更好、更快地领会“数据结构+算法=程序”这一著名公式的要义。全书共分12章,总体划分为3大部分,第1部分为概述,即第1章; 第2部分为第2章至第11章,共10章,分别介绍典型数据结构的抽象、表示和实现,包括线性表、串、栈、队列、数组、广义表、树、图,以及基本计算方法查找和排序; 第3部分,即第12章,为经典算法的实例分析与应用,包括分治、动态规划和回溯,同时介绍了泛型编程的思想及C++标准模板库的应用。

本书的主导思想是理论够用、知识连续,重在应用、培养能力,既注重数据结构与算法的基本原理,又突出数据结构相关理论在实际中如何运用,并将经典算法与实用技术相结合解决实际编程问题,强调程序设计的实战。学以致用,直观易懂,避免学习者,特别是以应用为目标的学习者在学习抽象程度较高、理论深度较大的知识时的畏难心理,是应用型院校和希望较快速地理解和掌握数据结构与算法相关知识的学习者理想的教材形式。

书中的算法都有完整的C++程序,结构清晰、构思精巧,并在VC++6.0环境下编译及正确运行,能够帮助读者更好地理解相关的理论知识点,同时充分地训练程序设计的能力。本书旨在通过一系列核心知识点和应用实例的学习和训练后,帮助读者建立并完善分析问题、解决问题及优化解决方案的思维过程,以便更有信心去挑战更为复杂的程序设计问题。

本书的编写团队主要来自应用型院校,编者希望将自身在应用型人才培养一线的教学经验通过本书加以体现,也欢迎各界的专家、同仁以及读者与我们进一步交流。主编龚丹,副主编梁兴柱、蔡爱杰、王婧,一起参与编写的还有姚璐、邢芳卉、黄磊、孙海龙、张振蕊、王振力、王家宁、王莉莉、张志维等老师,虽然经过反复的讨论和校对,但难免会有错漏之处,敬请原谅和指教。编者电子邮箱pcgong1001@yahoo.com.cn。

编者2010年8月于北国冰城