-
内容大纲
本书系统介绍了数据结构与算法的基本概念和相关知识,既注重理论,又注重算法设计,更突出代码实现,是一本着眼于数据结构与基本算法的教学实践的教材。
本书介绍了线性表、队列与栈、树与优先级队列、集合与静态查找表、动态查找表、排序、外部查找与排序、图、最小生成树与最短路径、算法设计思想等内容,将数据结构的理论与真实应用的实践紧密结合,从各种数据结构的代码实现到火车票管理系统的代码实现,手把手地指导读者学习数据结构与算法,帮助读者轻松掌握数据结构与算法的基本知识及基本技能,为后续进行更多专业课程的学习打下扎实基础。
本书可以作为高等院校计算机和人工智能相关专业学生的教材,也可以作为广大计算机科学与工程领域从业人员的参考书。 -
作者介绍
-
目录
第1章 绪论
1.1 问题引入
1.2 什么是数据结构
1.2.1 数据的逻辑结构
1.2.2 数据的存储结构
1.2.3 数据的操作
1.3 算法分析
1.3.1 算法的基本概念
1.3.2 时间复杂度
1.3.3 空间复杂度
1.4 算法优化
1.4.1 时间复杂度为O(n3)的算法
1.4.2 时间复杂度为O(n2)的算法
1.4.3 时间复杂度为O(nlogn)的算法
1.4.4 时间复杂度为O(n)的算法
1.5 大型应用实现:火车票管理系统总览
1.6 小结
1.7 习题
第2章 线性表
2.1 问题引入
2.2 线性表的定义
2.3 线性表的实现
2.3.1 线性表的顺序实现
2.3.2 线性表的链接实现
2.4 线性表的简单应用
2.4.1 大整数处理
2.4.2 多项式求和
2.5 大型应用实现:列车运行计划管理类
2.6 小结
2.7 习题
第3章 队列与栈
3.1 问题引入
3.2 队列
3.2.1 队列的定义
3.2.2 队列的顺序实现
3.2.3 队列的链接实现
3.2.4 队列的简单应用:排队洗衣
3.3 栈
3.3.1 栈的定义
3.3.2 栈的顺序实现
3.3.3 栈的链接实现
3.3.4 栈的简单应用:括号匹配
3.4 大型应用实现:排队交易类
3.5 小结
3.6 习题
第4章 树与优先级队列
4.1 问题引入
4.2 树的定义
4.3 二叉树
4.3.1 二叉树的定义
4.3.2 二叉树的顺序实现
4.3.3 二叉树的链接实现
4.3.4 二叉树的简单应用:哈夫曼编码和哈夫曼树
4.4 优先级队列
4.4.1 优先级队列的定义
4.4.2 优先级队列的实现
4.4.3 优先级队列的简单应用:任务调度
4.5 大型应用实现:带优先级的排队交易类
4.6 小结
4.7 习题
第5章 集合与静态查找表
5.1 问题引入
5.2 集合的定义
5.3 静态查找表
5.3.1 无序查找的实现
5.3.2 有序查找的实现
5.4 集合的简单应用:并查集
5.5 大型应用实现:列车运行图类(1)
5.6 小结
5.7 习题
第6章 动态查找表
6.1 问题引入
6.2 动态查找表的定义
6.3 二叉查找树
6.3.1 二叉查找树的定义
6.3.2 二叉查找树的实现
6.4 AVL树
6.4.1 AVL树的定义
6.4.2 AVL树的实现
6.5 红黑树
6.5.1 红黑树的定义
6.5.2 红黑树的实现
6.6 哈希表
6.6.1 哈希表的定义
6.6.2 哈希表的实现
6.7 大型应用实现:旅客管理类
6.8 小结
6.9 习题
第7章 排序
7.1 问题引入
7.2 排序的定义
7.3 插入排序
7.3.1 直接插入排序
7.3.2 二分插入排序
7.3.3 希尔排序
7.4 选择排序
7.4.1 直接选择排序
7.4.2 堆排序
7.5 交换排序
7.5.1 冒泡排序
7.5.2 快速排序
7.6 归并排序
7.7 基数排序
7.8 小结
7.9 习题
第8章 外部查找与排序
8.1 问题引入
8.2 外部查找表的定义
8.3 B树
8.3.1 B树的定义
8.3.2 B树的实现
8.4 B+树
8.4.1 B+树的定义
8.4.2 B+树的实现
8.5 外排序
8.5.1 外排序的定义
8.5.2 外排序的实现
8.6 大型应用实现:余票管理类与行程管理类
8.7 小结
8.8 习题
第9章 图
9.1 问题引入
9.2 图的定义
9.3 图的实现
9.3.1 邻接矩阵
9.3.2 邻接表
9.4 图的遍历
9.4.1 深度优先搜索(DFS)
9.4.2 广度优先搜索(BFS)
9.5 图的遍历的简单应用
9.5.1 图的连通性
9.5.2 欧拉回路
9.5.3 拓扑排序
9.5.4 关键路径
9.6 大型应用实现:列车运行图类(2)
9.7 小结
9.8 习题
第10章 最小生成树与最短路径
10.1 问题引入
10.2 最小生成树
10.2.1 最小生成树的定义
10.2.2 克鲁斯卡尔算法
10.2.3 普里姆算法
10.3 单源最短路径
10.3.1 非加权图的单源最短路径
10.3.2 加权图的单源最短路径
10.3.3 带有负权值图的单源最短路径
10.3.4 无环图的单源最短路径
10.4 所有顶点对的最短路径
10.5 大型应用实现:列车运行图类(3)
10.6 小结
10.7 习题
第11章 算法设计思想
11.1 枚举法
11.2 贪婪算法
11.3 分治法
11.4 回溯法
11.5 动态规划
11.6 随机算法
11.7 算法综合分析:外卖配送任务
11.8 小结
11.9 习题
附录A 书中部分命题的证明
A.1 证明二叉树的性质
A.2 证明两种遍历方法是否能够唯一确定一棵二叉树
A.3 证明AVL树的高度是对数级别的
A.4 证明AVL树插入后至多只需要调整一个结点即可恢复平衡
A.5 证明快速排序的平均时间复杂度为O(nlogn)
A.6 证明归并排序的时间复杂度为O(nlogn)
附录B 电子资源与运行环境配置
B.1 动手练平台
B.2 电子资料仓库
B.3 本地环境搭建和仓库代码运行
B.3.1 Linux环境
B.3.2 Windows环境
B.3.3 macOS环境
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...