图书前言

前言

随着人工智能的快速发展,各类学科对计算机学科的要求越来越高,而数据结构和算法是程序设计中相辅相成的两方面,是计算机学科的重要基石。“数据结构与算法”也是所有从事计算机系统研究和应用、计算机应用软件开发的科技人员必须学习和掌握的一门课程,该课程研究如何用计算机进行信息表示和处理,在计算机学科体系中占据很重要的地位。

“数据结构与算法”课程主要强调以下几方面的知识和能力的培养: ①掌握并能根据实际问题灵活应用基本数据结构的抽象数据类型、存储方法和主要的算法; ②掌握基本的算法设计和分析技术; ③掌握并能应用常用的排序、查找方法; ④具备一定的调试算法和程序、项目测试的能力。显然,合理地组织数据、有效地表示数据、有效地处理数据,这三者是提高程序设计质量的关键因素。

本书以数据的逻辑结构为主线分别介绍了线性结构、树结构、图结构以及查找和排序的典型应用,全书共分为8章。第1章综述数据、数据结构和抽象数据类型的基本概念,介绍算法分析和评价的基本思想;第2~4章介绍各种线性数据结构,其中,第2章线性表是一种最典型的线性结构,第3章栈和队列以及第4章串是一些常用的特殊线性表;第5章介绍树结构,包括树和二叉树;第6章介绍图结构;第7章介绍查找方法及数据的组织结构;第8章介绍各种排序方法,包括内部排序的常用方法和外部排序。

本书充分强调数据结构基础理论的重要地位,使用类C语言的描述方法,介绍了线性表、栈、队列、树、图等数据结构,以及查找和排序方法。本书阐述了数据结构的基本概念,数据的逻辑结构和存储结构及其关系,介绍了如何合理地组织数据、有效地表示数据和有效地处理数据,如何根据实际问题的要求选择和设计合适的数据结构,编写质量高、风格好的应用程序,论述了算法分析的基本方法,培养学生利用数据结构知识解决相关应用问题的意识和能力。针对数据结构课程概念多、算法灵活和抽象性强等特点,编者在总结长期教学经验的基础上进行编写。书中对每一类数据结构的分析均按照“逻辑结构—存储结构—基本运算的实现—时空性分析—算法举例—典型应用实例—练习题—实验题”的顺序来进行。

考虑到初学者对算法设计问题普遍感到比较困难,思路不明确,本书每一章都设有算法设计举例,意在提高初学者的算法分析和设计能力。在线性表、栈和队列、串和数组、树和二叉树、图这几章后还附有算法应用举例,意在通过某种数据结构的实际应用案例,使读者在遇到实际问题的时候,能够选择和设计适合的数据结构。同时每章之后附有习题,以便读者进一步练习并检验学习效果。编者将多年积累的实验资源进行整合和升级,为使用者配备实践教学平台,学生可以通过大量实验案例理解算法设计与分析方法,并实现随时、随地的实践学习场景。教师能够利用这些教学资源,并根据本校课程需要进行重构,高效地进行教学。

本书力求完成以数据结构为主线、算法分析为辅线组织教学内容,注重抽象数据类型在本课程教学中的地位和作用,在教材主体基础上,配套PPT、源代码、实验、作业以及实践平台等辅助教学资源,具体内容如下。

(1) 教学课件(PPT): 提供全部教学内容的精美PPT,供任课教师教学中使用。

(2) 教学大纲和电子教案: 包含“数据结构”课程支撑的各个毕业要求指标点、课程目标、思政目标、课程介绍、教学目的、课程内容和学时分配。

(3) 实验教学大纲: 包含课程教学介绍、教学目的、实验基本要求与方式、实验报告、课程内容与学时分配。

(4) 程序源码: 所有源代码按章组织,例如,“第2章”文件夹存放第2章的全部源代码,其中,“第2章\\algorithm25.c”为例2.5的源代码。

(5) 在线作业: 包括选择题、判断题、填空题、简答题、应用分析题和编程题。

(6) 实践教学平台: 上述资源都在头歌实践教学平台上进行了发布,学习者可以在平台上完成作业、实验,实践课程的具体网址是https://www.educoder.net/users/wkycfeqx3/paths?category=manage。读者使用时需先在头歌实践教学平台注册才能使用。

本书可作为高等院校计算机科学与技术专业的教材、参考书和考研辅导,同时也可供计算机工程技术人员参考。对于计算机科学与技术、软件工程、网络工程、物联网工程等专业,可讲授60学时;对于其他专业,可去掉带星号的章节,讲授48学时。

本书第1、2、7章由大连民族大学的孟佳娜编写,第3、4章由大连民族大学的宋海玉编写,第5、6章由大连民族大学的李威编写,第8章由大连民族大学的于艳莉编写。课后习题、电子课件和校对工作由普洱学院的龙迎春完成。

由于编者水平有限,加上计算机科学技术的发展十分迅速,书中难免有不足和疏漏之处,恳请广大读者指正。

作者2025年1月