书籍详情
数据结构编程实验(第3版)
作者:吴永辉,王建德
出版社:机械工业出版社
出版时间:2021-08-01
ISBN:9787111687429
定价:¥139.00
购买这本书可以去
内容简介
本书针对大学程序设计竞赛和课程教学,基于数据结构的知识体系结构和循序渐进的原则组织内容,包括基本编程能力训练、线性数据结构的编程、树的编程、图的编程。在每一章中,先介绍了相关的数据结构知识后,然后给出相应的范例;在每章的结尾给出相关题库。
作者简介
吴永辉,博士,复旦大学副教授,美国石溪大学访问学者,上海师范大学兼职教授,ICPC亚洲训练委员会主任。率队在ICPC世界总决赛上获得三枚奖牌,并应邀在海内外多所高校长期讲学。王建德,著名的信息学奥林匹克竞赛金牌教练,国务院特殊津贴专家,中学特级教师。他所辅导的学生在国际信息学竞赛(IOI)中获得7金、3银、2铜的优异成绩,先后出版了24本关于程序设计和算法的学术著作。2012年起,两位作者合作出版“大学程序设计课程与竞赛训练教材”系列图书,不仅在中国大陆和中国台湾出版简体版和繁体版,而且在美国出版英文版,全球发行。
目录
前言
篇 训练基本编程能力的实验
第1章 简单计算的编程实验 2
1.1 改进程序书写风格 2
1.2 正确处理多个测试用例 4
1.3 在实数和整数之间转换 10
1.4 二分法、实数精度 13
1.5 相关题库 20
第2章 简单模拟的编程实验 30
2.1 直叙式模拟 30
2.2 筛选法模拟 33
2.3 构造法模拟 35
2.4 相关题库 37
第3章 递归与回溯法的编程实验 44
3.1 计算递归函数 45
3.2 求解递归数据 47
3.3 用递归算法求解问题 49
3.4 回溯法 55
3.5 相关题库 63
本篇小结 69
第二篇 线性表的编程实验
第4章 应用直接存取类线性表编程 72
4.1 数组应用的四个典型范例 72
4.1.1 日期计算 72
4.1.2 高精度运算 78
4.1.3 多项式的表示与处理 86
4.1.4 数值矩阵运算 91
4.2 字符串处理 96
4.2.1 使用字符串作为存储结构 96
4.2.2 字符串的模式匹配 97
4.2.3 使用Manacher算法求长回文子串 103
4.3 在数组中快速查找指定元素 107
4.4 通过数组分块技术优化算法 109
4.5 相关题库 113
第5章 应用顺序存取类线性表编程 149
5.1 顺序表的应用 149
5.2 栈应用 158
5.3 队列应用 166
5.3.1 顺序队列 166
5.3.2 优先队列 176
5.3.3 双端队列 180
5.4 相关题库 183
第6章 应用广义索引类线性表编程 192
6.1 使用词典解题 192
6.2 应用散列技术处理字符串 197
6.3 使用散列表与散列技术解题 202
6.4 相关题库 210
第7章 线性表排序的编程实验 217
7.1 利用STL中自带的排序功能编程 217
7.2 应用排序算法编程 222
7.3 相关题库 226
本篇小结 247
第三篇 树的编程实验
第8章 采用树结构的非线性表编程 250
8.1 用树的遍历求解层次性问题 250
8.2 用树结构支持并查集 258
8.3 用树状数组统计子树权和 266
8.4 用四叉树求解二维空间问题 272
8.5 用Trie树查询字符串 280
8.6 用AC自动机进行多模式匹配 284
8.7 相关题库 292
第9章 应用二叉树的基本概念编程 324
9.1 普通有序树转化为二叉树 324
9.2 应用典型二叉树 327
9.3 计算二叉树路径 333
9.4 通过遍历确定二叉树结构 339
9.5 相关题库 344
第10章 应用经典二叉树编程 348
10.1 二叉搜索树 348
10.2 二叉堆 355
10.3 树堆 363
10.3.1 树堆的概念和操作 363
10.3.2 非旋转树堆 370
10.4 赫夫曼树 379
10.4.1 赫夫曼树 379
10.4.2 多叉赫夫曼树 381
10.5 AVL树 384
10.6 伸展树 389
10.7 相关题库 397
本篇小结 411
第四篇 图的编程实验
第11章 应用图的遍历算法编程 414
11.1 BFS算法 414
11.2 DFS算法 425
11.3 拓扑排序 433
11.3.1 删边法 433
11.3.2 采用DFS计算拓扑排序 436
11.3.3 反向拓扑排序 440
11.4 计算图的连通性 443
11.5 Tarjan算法 450
11.6 相关题库 468
第12 章 应用小生成树算法编程 489
12.1 Kruskal算法 489
12.2 Prim算法 491
12.3 生成树 496
12.4 相关题库 500
第13章 应用路算法编程 507
13.1 Warshall算法和Floyd-Warshall算法 507
13.2 Dijkstra算法 514
13.3 Bellman-Ford算法 519
13.4 SPFA算法 523
13.5 相关题库 527
第14章 二分图、网络流算法编程 535
14.1 二分图匹配 535
14.1.1 匈牙利算法 535
14.1.2 Hall婚姻定理 541
14.1.3 KM算法 544
14.2 计算网络流 551
14.2.1 网络流 551
14.2.2 小费用流 560
14.3 相关题库 570
第15 章 应用状态空间搜索编程 583
15.1 构建状态空间树 583
15.2 优化状态空间搜索 590
15.2.1 剪枝 591
15.2.2 定界 595
15.2.3 A*算法? 603
15.2.4 IDA*算法 612
15.3 在博弈问题中使用游戏树 623
15.4 相关题库 638
本篇小结 658
篇 训练基本编程能力的实验
第1章 简单计算的编程实验 2
1.1 改进程序书写风格 2
1.2 正确处理多个测试用例 4
1.3 在实数和整数之间转换 10
1.4 二分法、实数精度 13
1.5 相关题库 20
第2章 简单模拟的编程实验 30
2.1 直叙式模拟 30
2.2 筛选法模拟 33
2.3 构造法模拟 35
2.4 相关题库 37
第3章 递归与回溯法的编程实验 44
3.1 计算递归函数 45
3.2 求解递归数据 47
3.3 用递归算法求解问题 49
3.4 回溯法 55
3.5 相关题库 63
本篇小结 69
第二篇 线性表的编程实验
第4章 应用直接存取类线性表编程 72
4.1 数组应用的四个典型范例 72
4.1.1 日期计算 72
4.1.2 高精度运算 78
4.1.3 多项式的表示与处理 86
4.1.4 数值矩阵运算 91
4.2 字符串处理 96
4.2.1 使用字符串作为存储结构 96
4.2.2 字符串的模式匹配 97
4.2.3 使用Manacher算法求长回文子串 103
4.3 在数组中快速查找指定元素 107
4.4 通过数组分块技术优化算法 109
4.5 相关题库 113
第5章 应用顺序存取类线性表编程 149
5.1 顺序表的应用 149
5.2 栈应用 158
5.3 队列应用 166
5.3.1 顺序队列 166
5.3.2 优先队列 176
5.3.3 双端队列 180
5.4 相关题库 183
第6章 应用广义索引类线性表编程 192
6.1 使用词典解题 192
6.2 应用散列技术处理字符串 197
6.3 使用散列表与散列技术解题 202
6.4 相关题库 210
第7章 线性表排序的编程实验 217
7.1 利用STL中自带的排序功能编程 217
7.2 应用排序算法编程 222
7.3 相关题库 226
本篇小结 247
第三篇 树的编程实验
第8章 采用树结构的非线性表编程 250
8.1 用树的遍历求解层次性问题 250
8.2 用树结构支持并查集 258
8.3 用树状数组统计子树权和 266
8.4 用四叉树求解二维空间问题 272
8.5 用Trie树查询字符串 280
8.6 用AC自动机进行多模式匹配 284
8.7 相关题库 292
第9章 应用二叉树的基本概念编程 324
9.1 普通有序树转化为二叉树 324
9.2 应用典型二叉树 327
9.3 计算二叉树路径 333
9.4 通过遍历确定二叉树结构 339
9.5 相关题库 344
第10章 应用经典二叉树编程 348
10.1 二叉搜索树 348
10.2 二叉堆 355
10.3 树堆 363
10.3.1 树堆的概念和操作 363
10.3.2 非旋转树堆 370
10.4 赫夫曼树 379
10.4.1 赫夫曼树 379
10.4.2 多叉赫夫曼树 381
10.5 AVL树 384
10.6 伸展树 389
10.7 相关题库 397
本篇小结 411
第四篇 图的编程实验
第11章 应用图的遍历算法编程 414
11.1 BFS算法 414
11.2 DFS算法 425
11.3 拓扑排序 433
11.3.1 删边法 433
11.3.2 采用DFS计算拓扑排序 436
11.3.3 反向拓扑排序 440
11.4 计算图的连通性 443
11.5 Tarjan算法 450
11.6 相关题库 468
第12 章 应用小生成树算法编程 489
12.1 Kruskal算法 489
12.2 Prim算法 491
12.3 生成树 496
12.4 相关题库 500
第13章 应用路算法编程 507
13.1 Warshall算法和Floyd-Warshall算法 507
13.2 Dijkstra算法 514
13.3 Bellman-Ford算法 519
13.4 SPFA算法 523
13.5 相关题库 527
第14章 二分图、网络流算法编程 535
14.1 二分图匹配 535
14.1.1 匈牙利算法 535
14.1.2 Hall婚姻定理 541
14.1.3 KM算法 544
14.2 计算网络流 551
14.2.1 网络流 551
14.2.2 小费用流 560
14.3 相关题库 570
第15 章 应用状态空间搜索编程 583
15.1 构建状态空间树 583
15.2 优化状态空间搜索 590
15.2.1 剪枝 591
15.2.2 定界 595
15.2.3 A*算法? 603
15.2.4 IDA*算法 612
15.3 在博弈问题中使用游戏树 623
15.4 相关题库 638
本篇小结 658
猜您喜欢