我们生活在一个物质世界中,同时又时刻面对着一个数字的世界。如果将物质世界中的事与物数字化,那么它们在计算机中均表现为数据。这些数据来源于现实,具有具体的含义,而且在计算机中有着统一的表示方法,因而成为计算机程序处理的符号集合。研究数据在计算机中的表示方法、关联方法、存储方法以及典型处理方法,正是数据结构课程的主要内容。
早在20ff纪80年代初,“数据结构”就已成为国内高校计算机专业教学计划中的核心课程。目前,ACM/IEEE计算学科课程计划(CC.2001)已将算法与数据结构类课程列为核心课程之首,数据结构愈益显现出其在信息学科理论中的重要地位。
在软件系统的开发过程中,数据结构的思维方法在本质上不同于常规数学训练的公理系统思维方法,而是一种算法构造性思维方法。所谓构造性思维方法就是要让学生理解、习惯并掌握算法的一种思维方法,也是本门课程教学的重要内容和主要难点。要成为专业的软件开发人员,仅仅知道开发工具的语言规则和简单使用过程是远远不够的,只有培养自身的数据抽象能力、算法设计能力,掌握创造性思维方法,举一反三,触类旁通,才能够具备应用知识解决复杂问题的能力。
本书是作者根据多年的教学经验,结合当前计算机科学技术的发展,并参考了众多的数据结构教材编著而成的。书中采用了能够自然体现抽象数据类型概念的c++语言作为算法描述语言,内容覆盖了数据结构课程的教学大纲,从数据类型角度系统地介绍了各种数据结构的逻辑特性、存储表示方法及基本操作算法,并针对常用的数据结构进一步讨论了各种应用算法及其实现方法。本书旨在培养学生分析计算机加工数据对象特征的能力,以便在实际操作中选择合适的数据结构和存储结构以及相应的算法,同时帮助学生掌握估算算法时间复杂度和空间复杂度的基本技巧。
本书将数据结构的原理和算法分析技术有机地结合在一起,使用了参数化的模板,提高了算法中数据类型的通用性,支持**的代码重用。书中介绍和分析**设计思想时,结合了大量图解和具体示例,使读者能够联系实际,掌握数据结构的实质内容。此外,本书还介绍了一些比较**的数据结构及相关的算法分析技术。