前言
“数据结构”课程是计算机、电子信息类及相关专业的专业基础。它在整个课程体系中处于承上启下的核心地位: 一方面帮助学生扩展和深化在“离散数学”“程序设计语言”等课程中学到的基本技术和方法; 另一方面为学生进一步学习操作系统、编译原理、数据库等专业知识奠定坚实的理论与实践基础。本课程在教学生数据结构设计和算法设计的同时,培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强学生分析问题、解决问题和总结问题的能力,更重要的是培养专业兴趣,树立创新意识。本书在内容选取上符合人才培养目标的要求及教学规律和认知规律,在组织编排上体现“先理论、后应用,理论与应用深度融合”的原则,并兼顾学科的广度和深度,力求适用面广泛。
全书共分10章。第1章综述数据、数据结构和抽象数据类型等基本概念及算法描述与分析方法; 第2~7章主要从抽象数据类型的角度分别讨论线性表、栈和队列、串、数组和广义表、树和二叉树、图等基本类型的数据结构及其应用; 第8章和第9章讨论查找和排序的各种方法,着重从时间性能、应用场合及使用范围等方面进行分析和比较; 第10章介绍“数据结构”课程实验的目的、步骤及内容。本书对数据结构众多知识点的来龙去脉做了详细解释和说明; 每章后面配有难度各异的适量习题,并在附录A中给出习题的参考答案,供读者理解知识及复习提高。随书配备数字资源,包括微课视频、教学课件、教学大纲、程序代码、测验试卷等。
全书采用类C语言描述算法。类C语言是C语言的一个精选子集,同时又采用了C++对C非面向对象的增强功能,使本书对各种抽象数据类型的定义和与数据结构相关的操作算法的描述更加简明清晰,可读性更好,既不拘泥于C语言的细节,又容易转换成能够上机执行的C程序或C++程序。
从课程性质上讲,“数据结构”是高等院校计算机科学、电子信息科学及相关专业考试计划中的一门专业基础课,其教学要求是学会分析和研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时空分析技术。从课程学习上讲,“数据结构”的学习是复杂程序设计的训练过程,其教学目的是着眼于原理与应用的结合,在深化理解和灵活掌握教学内容的基础上,学会把知识用于解决实际问题,书写出符合软件工程规范的文件,编写出结构清晰且正确易读的程序代码。可以说,“数据结构”比“高级程序设计语言”等课程有着更高的要求,它更注重培养学生分析抽象数据的能力。
在本书的构思与编写过程中,得到了孙一林、邱李华等多位教授,以及多位研究生的帮助,在此表示感谢。
由于编者水平有限,书中不当之处敬请读者提出批评和建议。
编者2026年6月
