前言
在数字化时代,数据已经成为现代社会的第五大生产要素,在推动社会发展中起着重要作用。如何高效地存储、组织、管理和处理这些数据,成为计算机科学领域的核心问题。“数据结构”作为一门计算机科学相关的专业基础课程,正是为解决这一问题而设立。本书旨在通过系统介绍数据结构的基本概念、原理和实现方法,培养学生扎实的算法设计能力和算法思维,为后续课程的学习夯实基础。
在教材编写过程中积极贯彻《习近平新时代中国特色社会主义思想进课程教材指南》,引入了多元化的思政元素,落实立德树人根本任务;遵循OBE(Outcome Based Education)教育理念,根据学生的认知规律由浅入深地组织章节内容,让学生由浅层认知逐步过渡到深层认知;引入大量工程案例,培养学生能够根据实际工程问题设计合理数据结构以及高效算法的能力,旨在实现对学生的计算思维塑造、实践能力提升、思想政治教育的全方位培养。
本书共8章,其中第1章为绪论,综述数据结构、抽象数据类型、算法的时间复杂度和空间复杂度等基本概念;第2~6章从抽象数据类型的角度,分别讨论线性表、栈和队列、串和数组、树以及图等基本类型的数据结构及其应用;第7章和第8章分别讨论查找和排序,不仅介绍实现方法,而且从时间复杂度方面对各种算法进行了定性或定量的分析与比较。此外,由于“数据结构”课程知识点抽象,理论性和实践性都很强,并且为多数院校的考研科目,因此在习题设计时充分考虑了知识点的特点以及学生的分层需求,精心设计了每个章节的习题内容。
本书在内容上,确立了如下建设思路和特色。
统领性。由于在大多院校“数据结构”课程是由多个教师授课,通过教材的引领作用,明确教学思路、统一教学路线,对于提升课程的整体教学质量至关重要。因此,在内容的编排方面,着重考虑了教材内容对于启发式教学和案例式教学的适合度。系统性。明确每章教学目标,并构建章节知识点思维导图,学生可以在明确学习目标的前提下,整体把握知识脉络,有利于学生对专业知识的清晰梳理和教学目标的有效达成。
实用性。在章节开头引入工程案例,学生可以从宏观层面了解到学完本章知识后可以解决哪些实际问题。同时,提供具有挑战度的课程设计题目,并提供解决方案,一方面有利于提升学生的建模能力,另一方面可以进一步培养学生解决复杂工程问题的能力。
创新性。在章节末尾引入程序设计大赛题目,这些题目注重学思结合,融合创新,有助于培养学生的编程能力以及团队协作精神。
思政性。围绕“强化学生工程伦理教育,培养学生精益求精的大国工匠精神,激发学生科技报国的家国情怀和使命担当”这一思政主线,在各章末引入“思政视窗”,结合专业知识,围绕思政主线,深入挖掘、提炼思政元素,显隐结合,实现对计算思维塑造、实践能力培养、思政教育的有机融合,以达到润物无声的育人效果。
教材中的数据结构和算法均采用类C语言描述,不仅考虑了C语言的编程特点,而且兼顾了数据结构和算法的可读性,便于学生在实际上机操作时轻松地将本书中的数据结构和算法转换成C或C++程序。
为方便教师教学和学生学习,本书提供了教学课件、教学大纲、教案、题库资源、源代码以及微课视频,在微课视频中涵盖了知识点讲解和章节习题讲解,可以为线上线下混合式教学的开展提供资源支撑。
本书由郭崇负责总体思路的规划、设计和实施,并负责编写第2章、第5章以及设计课程设计题目、挖掘思政元素等。李芳负责编写第3章和第6章,苑擎飏负责编写第7章和第8章,苗好田、关启学、虞闯负责编写第1章和第4章以及设计课后习题、整理教学资源等。同时,在本书的编写过程中,北京中软国际信息技术有限公司提供了大力支持和无私帮助,不仅提供了宝贵的工程实践案例,还派遣经验丰富的专家参与本书的撰写和审校工作,使得本书更加贴近实际,更具实用性。同时,沈阳理工大学信息科学与工程学院的杨春晖、刘萌帅、吕彤彤、陈柏戎、朱秋颖、刘婉婷等同学参与了有关程序的调试工作和文字校对及排版工作,在此一并表示衷心感谢!此外,在本书编写过程中受到了相关单位及个人研究成果的启发,皆在参考文献中详细列举,谨致谢忱。
由于编著时间仓促,兼之编者才识有限,虽历经数次修订,然仍有遗珠之憾。敬祈各位读者不吝赐教,予以斧正。
编者2025年12月
