python数据结构和算法分析_Python数据结构与算法分析第2版第 1章 导论 1
1.1 本章⽬标 1
1.2 ⼊门 1
1.3 何谓计算机科学 1
1.3.1 何谓编程 3
1.3.2 为何学习数据结构及抽象数据类型 4
1.3.3 为何学习算法 4
1.4 Python基础 5
1.4.1 数据 5
1.4.2 输⼊与输出 16
1.4.3 控制结构 18
1.4.4 异常处理 21
1.4.5 定义函数 23
1.4.6 Python⾯向对象编程:定义类 24
1.5 ⼩结 37
1.6 关键术语 38
1.7 讨论题 38
1.8 编程练习 38
第 2章 算法分析 40
2.1 本章⽬标 0
2.2 何谓算法分析 40
2.2.1 ⼤O记法 43
2.2.2 异序词检测⽰例 46
2.3 Python数据结构的性能 49
2.3.1 列表 49
2.3.2 字典 53
2.4 ⼩结 55
2.5 关键术语 55
2.6 讨论题 56
2.7 编程练习 56
第3章 基本数据结构 57
3.1 本章⽬标 57
3.2 何谓线性数据结构 57
3.3 栈 58
3.3.1 何谓栈 58
3.3.2 栈抽象数据类型 59
3.3.3 ⽤Python实现栈 60
3.3.4 匹配括号 62
3.3.5 普通情况:匹配符号 64
3.3.6 将⼗进制数转换成⼆进制数 65
3.3.7 前序、中序和后序表达式 67
3.4 队列 75
3.4.1 何谓队列 75
3.4.2 队列抽象数据类型 75
3.4.3 ⽤Python实现队列 76
3.4.4 模拟:传⼟⾖ 77
3.4.5 模拟:打印任务 79
3.5 双端队列 84
3.5.1 何谓双端队列 84
3.5.2 双端队列抽象数据类型 84
3.5.3 ⽤Python实现双端队列 85
3.5.4 回⽂检测器 86
3.6 列表 88
3.6.1 ⽆序列表抽象数据类型 88
3.6.2 实现⽆序列表:链表 89
3.6.3 有序列表抽象数据类型 97
3.6.4 实现有序列表 97
3.7 ⼩结 100
3.8 关键术语 101
3.9 讨论题 101
3.10 编程练习 102
第4章 递归 105
4.1 本章⽬标 105
4.2 何谓递归 105
4.2.1 计算⼀列数之和 105
4.2.2 递归三原则 107
4.2.3 将整数转换成任意进制的字符串 108
4.3 栈帧:实现递归 110 4.4 递归可视化 111
4.5 复杂的递归问题 116 4.6 探索迷宫 118
4.7 动态规划 123
4.8 ⼩结 128
4.9 关键术语 129
4.10 讨论题 129
4.11 编程练习 129
第5章 搜索和排序 131 5.1 本章⽬标 131
5.2 搜索 131
5.2.1 顺序搜索 131
5.2.2 ⼆分搜索 134
5.2.3 散列 136
5.3 排序 145
5.3.1 冒泡排序 145
5.3.2 选择排序 147
5.3.3 插⼊排序 149
5.3.4 希尔排序 151
5.3.5 归并排序 153
5.3.6 快速排序 156
5.4 ⼩结 159
5.5 关键术语 160
5.6 讨论题 160
5.7 编程练习 161
第6章 树 163
6.1 本章⽬标 163
6.2 ⽰例 163
6.3 术语及定义 166
6.4 实现 168
6.4.1 列表之列表 168 6.4.2 节点与引⽤ 171 6.5 ⼆叉树的应⽤ 173
6.5.1 解析树 173
6.5.2 树的遍历 179
6.6 利⽤⼆叉堆实现优先级队列 182 6.6.1 ⼆叉堆的操作 182
6.6.2 ⼆叉堆的实现 183
6.7 ⼆叉搜索树 189
6.7.1 搜索树的操作 190
6.7.2 搜索树的实现 190
6.7.3 搜索树的分析 201
6.8 平衡⼆叉搜索树 202
6.8.1 AVL树的性能 203
6.8.2 AVL树的实现 204
6.8.3 映射实现总结 210
6.9 ⼩结 211
6.10 关键术语 211
6.11 讨论题 211
6.12 编程练习 213
第7章 图及其算法 214
7.1 本章⽬标 214
7.2 术语及定义 215
7.3 图的抽象数据类型 216
7.3.1 邻接矩阵 216
7.3.2 邻接表 217
7.3.3 实现 218
7.4 宽度优先搜索 220
7.4.1 词梯问题 220
7.4.2 构建词梯图 221
7.4.3 实现宽度优先搜索 223
7.4.4 分析宽度优先搜索 226
7.5 深度优先搜索 226
7.5.1 骑⼠周游问题 226
7.5.2 构建骑⼠周游图 227
7.5.3 实现骑⼠周游 229
7.5.4 分析骑⼠周游 231
7.5.5 通⽤深度优先搜索 233
7.5.6 分析深度优先搜索 236
7.6 拓扑排序 236
7.7 强连通单元 238
7.8 最短路径问题 241
7.8.1 Dijkstra算法 243
快速排序python实现7.8.2 分析Dijkstra算法 245
7.8.3 Prim算法 245
7.9 ⼩结 248
7.10 关键术语 249
7.11 讨论题 249
7.12 编程练习 250
第8章 附加内容 251
8.1 本章⽬标 251
8.2 复习Python列表 251
8.3 复习递归 256
8.3.1 同余定理 257
8.3.2 幂剩余 257
8.3.3 最⼤公因数与逆元 258
8.3.4 RSA算法 261
8.4 复习字典:跳表 264
8.4.1 映射抽象数据类型 265
8.4.2 ⽤Python实现字典 265
8.5 复习树:量化图⽚ 274
8.5.1 数字图像概述 274
8.5.2 量化图⽚ 275
8.5.3 使⽤⼋叉树改进量化算法 277 8.6 复习图:模式匹配 284
8.6.1 ⽣物学字符串 285
8.6.2 简单⽐较 285
8.6.3 使⽤图:DFA 287
8.6.4 使⽤图:KMP 288
8.7 ⼩结 291
8.8 关键术语 291

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。