作者 |
吴永辉 王建德 |
丛书名 |
出版社 |
机械工业出版社 |
ISBN |
9782108121753 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8082813 - 数据结构编程实验:大学程序设计课程与竞赛训练教材 第3版--------------------------- 本书针对大学程序设计竞赛和课程教学,基于数据结构的知识体系结构和循序渐进的原则组织内容,包括基本编程能力训练、线性数据结构的编程、树的编程、图的编程。在每一章中,先介绍了相关的数据结构知识后,然后给出相应的范例;在每章的结尾给出相关题库。 ---------------------------8067796 - 算法设计编程实验(第2版)--------------------------- 本书从ACM-ICPC程序设计竞赛等各种程序设计竞赛的试题进行了分析和整理,并精选出典型试题进行分类解析,既可用于高校算法、程序设计课程的实验和教学,也可以用于竞赛选手的系统训练。 |
目录 |
[套装书具体书目] 8067796 - 算法设计编程实验(第2版) - 9787111645818 - 机械工业出版社 - 定价 119 8082813 - 数据结构编程实验:大学程序设计课程与竞赛训练教材 第3版 - 9787111687429 - 机械工业出版社 - 定价 139 ---------------------------8082813 - 数据结构编程实验:大学程序设计课程与竞赛训练教材 第3版--------------------------- 前言 第一篇 训练基本编程能力的实验 第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 ---------------------------8067796 - 算法设计编程实验(第2版)--------------------------- 前 言 第1章 求解Ad Hoc类问题的编程实验 1 1.1 机理分析法的实验范例 1 1.2 统计分析法的实验范例 5 1.3 相关题库 9 第2章 模拟法的编程实验 31 2.1 直叙式模拟的实验范例 31 2.2 筛选法模拟的实验范例 46 2.3 构造法模拟的实验范例 56 2.4 相关题库 60 第3章 数论的编程实验 72 3.1 素数运算的实验范例 72 3.1.1 使用筛法生成素数 72 3.1.2 测试大素数 79 3.2 求解不定方程和同余的实验范例 82 3.2.1 计算最大公约数和不定方程 82 3.2.2 计算同余方程和同余方程组 89 3.2.3 计算多项式同余方程 99 3.3 特殊的同余式的实验范例 102 3.3.1 威尔逊定理和费马小定理 102 3.3.2 伪素数 105 3.3.3 欧拉定理 112 3.4 积性函数的实验范例 116 3.4.1 欧拉φ函数φ(n) 116 3.4.2 莫比乌斯函数μ(n) 121 3.4.3 完全数和梅森素数 124 3.5 高斯素数的实验范例 129 3.6 相关题库 135 第4章 组合分析的编程实验 152 4.1 生成排列的实验范例 152 4.1.1 按字典序思想生成下一个排列 152 4.1.2 按字典序思想生成所有排列 154 4.2 排列组合计数的实验范例 156 4.2.1 一般的排列组合计数公式 156 4.2.2 两种特殊的排列组合计数公式 167 4.2.3 多重集的排列数和组合数 174 4.3 鸽笼原理与容斥原理的实验范例 178 4.3.1 利用鸽笼原理求解存在性问题 178 4.3.2 容斥原理应用实验 180 4.3.3 Ramsey定理的应用 188 4.4 Pólya计数公式的实验范例 190 4.5 生成函数与递推关系的实验范例 201 4.5.1 幂级数型生成函数 201 4.5.2 指数型生成函数 204 4.5.3 递推关系 207 4.6 快速傅里叶变换的实验范例 211 4.7 相关题库 216 第5章 贪心法的编程实验 229 5.1 体验贪心法内涵的实验范例 229 5.1.1 贪心法的经典问题 229 5.1.2 体验贪心法内涵 236 5.2 利用数据有序化进行贪心选择的实验范例 241 5.3 在综合性的P类问题中使用贪心法的实验范例 249 5.4 相关题库 255 第6章 动态规划方法的编程实验 265 6.1 线性DP的实验范例 266 6.1.1 初步体验线性DP问题 266 6.1.2 子集和问题 270 6.1.3 最长公共子序列问题 271 6.1.4 最长递增子序列问题 273 6.2 0-1背包问题 280 6.2.1 基本的0-1背包问题 280 6.2.2 完全背包 281 6.2.3 多重背包 285 6.2.4 混合背包 287 6.2.5 二维背包 292 6.2.6 分组背包 294 6.2.7 有依赖的背包 298 6.3 树形DP的实验范例 300 6.4 状态压缩DP的实验范例 305 6.5 单调优化1D/1D DP的实验范例 309 6.5.1 经典模型1:利用决策代价函数w的单调性优化 310 6.5.2 经典模型2:利用决策区间下界的单调性优化 313 6.5.3 经典模型3:利用最优决策点的凸性优化 318 6.6 相关题库 322 第7章 高级数据结构的编程实验 353 7.1 后缀数组的实验范例 353 7.1.1 使用倍增算法计算名次数组和后缀数组 353 7.1.2 计算最长公共前缀 356 7.1.3 后缀数组的应用 357 7.2 线段树的实验范例 370 7.2.1 线段树的基本概念和基本操作 370 7.2.2 线段树单点更新的维护 372 7.2.3 线段树子区间更新的维护 375 7.3 处理特殊图的实验范例 387 7.3.1 计算欧拉图 387 7.3.2 计算哈密顿图 393 7.3.3 计算最大独立集 402 7.3.4 计算割点、桥和双连通分支 406 7.4 相关题库 414 第8章 计算几何的编程实验 433 8.1 点线面运算的实验范例 433 8.1.1 计算点积和叉积 433 8.1.2 计算线段交 440 8.1.3 利用欧拉公式计算多面体 449 8.2 利用扫描线算法计算矩形的并的面积的实验范例 453 8.2.1 沿垂直方向计算矩形的并面积 453 8.2.2 沿水平方向计算矩形的并面积 457 8.3 计算半平面交的实验范例 460 8.3.1 计算半平面交的联机算法 461 8.3.2 利用极角计算半平面交的算法 466 8.4 计算凸包和旋转卡壳的实验范例 474 8.4.1 计算凸包 474 8.4.2 旋转卡壳实验 479 8.5 相关题库 482 |