《数据结构》是针对应用型本科教学特征和需求而编写的,书中系统地介绍了常见数据结构和算法的相关理论和实现方法,主要包括线性表、栈、队列、串、数组和广义表、树和二叉树、图等逻辑结构及其对应的存储结构和操作。另外,该书还集中介绍了常见的排序和查找算法,并对算法的效率进行了分析。
《数据结构》以C语言为算法实现语言,以理论讲解为基石,以案例讲解为驱动,每个章节配备思考题和章后习题(包括理论习题和上机操作习题)。该书致力于将理论和实践相结合,由浅入深地实现理论和实践内容的逐级内化。
《数据结构》可作为应用型高等院校计算机科学与技术、软件工程、数据科学与大数据技术、信息安全等相关专业的本科生专业教材或参考用书,也可作为计算机相关从业技术人员的自学和参考用书。
更多科学出版社服务,请扫码获取。
“数据结构”是计算机科学与技术学科中一门十分重要的专业基础课程,也是其他工科的重要选修课之一。2022年发布的《计算机类教学质量国家标准》中将“数据结构”课程列为计算机科学与技术专业、软件工程专业、网络工程专业、信息安全专业、物联网工程等5个学科的基础课之一。另外,数据科学与大数据、人工智能等专业都要求学生具备较好的算法和数据结构相关基础知识。
编者结合本科的教学要求和省属学校学生的学习特点,注重理论和实践相结合。本书中将知识内容、实践内容有机融合,体现了程序设计方法中抽象、枚举、归纳3个原则的运用,反复再现算法的复杂性、效率、折中、重用等重要概念。
本书在内容的选取上体现了突出应用的原则——针对应用型本科课程“教与学”的特点,在实例列举上力求做到典型和恰当,并在各章都附有相应的习题(包括理论习题和上机操作习题);以实例介绍各种数据结构的应用。
在内容的组织上遵循“循序渐进”的原则——从数据类型、线性表、栈、队列开讲数据结构,与前导课程“高级语言程序设计”内容前后贯通,无缝衔接;内容由浅入深,按常用数据结构、简单数据结构、树与二叉树、图与网、查找和排序的次序安排主要教学内容。
在内容的叙述上符合“通俗易懂”的原则,在算法的描述上力求结构清晰、描述正确、易读易理解,并对每一个算法都做了大量的注释。在文字叙述上力求做到由浅入深和深入浅出,用语大众化,增强可读性。
全书共10章。第1章介绍数据结构和算法的基本概念,以及算法的评价方法;第2章介绍线性表的逻辑结构、存储结构、基本操作,以及基本操作的时空复杂度分析;第3章深入浅出地介绍栈的定义、顺序栈、链栈,以及栈的应用;第4章介绍队列的基本概念、顺序存储结构、链式存储结构,以及队列的应用;第5章介绍串的定义、存储结构及其操作;第6章分别介绍了一维数组、二维数组、多维数组,特殊矩阵的存储方法,以及广义表的定义、抽象结构及存储结构;第7章介绍树和二叉树,主要包括树和二叉树的定义、遍历方法、基本应用;第8章介绍图,包括图的基本概念、图的存储、图的遍历,以及图的应用,并介绍相关的性能分析;第9章和第10章介绍查找和排序,并对其性能进行分析和对比。
全书侧重应用性,力求教学内容与应用实际紧密结合;强调实践性,建议读者多动手,通过实际编程实现各种算法,并在深入分析的基础上改进算法或提出新的算法,强调习题和上机实验题的重要性。
本书由逯洋担任主编,具体编写分工如下:逯洋负责本书整体的章节设计,并编写了第2~4章;孙宏宇编写了第5~8章;王晓宇编写了第9章和第10章;鲁铮编写了第1章;李颖和李闯负责全书的文字校对工作。
编者在编写本书时,查阅和参考了众多文献资料,从中得到了许多教益和启发,在此向参考文献的作者致以诚挚的谢意。
由于时间仓促和编者水平有限,书中难免有不妥和疏漏之处,敬请读者批评指正。
第1章 数据结构和算法
1.1 数据结构的基本概念
1.2 抽象数据类型的表示与实现
1.2.1 抽象、数据抽象和过程抽象
1.2.2 封装与信息隐蔽
1,2.3 数据类型和抽象数据类型
1.2.4 数据结构和抽象数据类型
1.3 算法
1.3.1 算法的概念
1.3 ,2算法的基本特性
1.4 算法的设计与评价
1.4.1 评价算法的标准
1.4.2 常见的算法设计方法
小结
习题
第2章 线性表
2.1 线性表的基本概念
2.1.1 线性表的定义
2.1.2 线性表的逻辑结构
2.1.3 线性表的基本运算
2.2 线性表的顺序表示与实现
2.2.1 线性表的顺序存储结构
2.2.2 顺序表的实现
2.2.3 顺序表基本运算的实现
2.2.4 顺序表的算法分析
2.3 线性表的链式表示与实现
2.3.1 线性表的链式存储结构(链表)
2.3.2 链表的实现
2.3.3 链表基本运算的实现
2.3.4 链表的算法分析
2.4 单循环链表和双链表
2.4.1 单循环链表
2.4.2 双链表
2.4.3 顺序表和链表的比较
2.5 线性表的应用
2.5.1 顺序表的应用
2.5.2 链表的应用
小结
习题
第3章 栈
3.1 基本概念
3.1.1 栈的概念
3.1.2 栈的基本运算
3.2 栈的顺序存储结构
3.2.1 顺序栈
3.2.2 顺序栈的基本操作
3.3 栈的链式存储结构
3.3.1 链栈的实现
3.3.2 链栈的基本操作
3.4 栈的应用
3.4.1 数制转换
3.4.2 括号匹配
3.4.3 “迷宫”游戏
小结
习题
第4章 队列
4.1 队列的基本概念和基本运算
4.1.1 队列的基本概念
4.1.2 队列的基本运算
4.2 队列的顺序存储结构
4.2.1 队列的顺序表示
4.2.2 顺序队列的基本运算
4.2.3 循环队列
4.2.4 循环队列的基本运算
……
第5章 串
第6章 数组和广义表
第7章 树和二叉树
第8章 图
第9章 查找
第10章 排序
参考文献