数据结构与算法 Python语言描述PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:裘宗燕编著
- 出 版 社:北京:机械工业出版社
- 出版年份:2016
- ISBN:9787111521181
- 页数:346 页
第1章 绪论 1
1.1 计算机问题求解 1
1.1.1 程序开发过程 1
1.1.2 一个简单例子 3
1.2 问题求解:交叉路口的红绿灯安排 4
1.2.1 问题分析和严格化 5
1.2.2 图的顶点分组和算法 6
1.2.3 算法的精化和Python描述 7
1.2.4 讨论 8
1.3 算法和算法分析 10
1.3.1 问题、问题实例和算法 10
1.3.2 算法的代价及其度量 14
1.3.3 算法分析 19
1.3.4 Python程序的计算代价(复杂度) 21
1.4 数据结构 23
1.4.1 数据结构及其分类 24
1.4.2 计算机内存对象表示 26
1.4.3 Python对象和数据结构 30
练习 32
第2章 抽象数据类型和Python类 34
2.1 抽象数据类型 34
2.1.1 数据类型和数据构造 34
2.1.2 抽象数据类型的概念 36
2.1.3 抽象数据类型的描述 37
2.2 Python的类 39
2.2.1 有理数类 39
2.2.2 类定义进阶 40
2.2.3 本书采用的ADT描述形式 43
2.3 类的定义和使用 44
2.3.1 类的基本定义和使用 44
2.3.2 实例对象:初始化和使用 45
2.3.3 几点说明 47
2.3.4 继承 49
2.4 Python异常 53
2.4.1 异常类和自定义异常 53
2.4.2 异常的传播和捕捉 54
2.4.3 内置的标准异常类 54
2.5 类定义实例:学校人事管理系统中的类 55
2.5.1 问题分析和设计 56
2.5.2 人事记录类的实现 57
2.5.3 讨论 62
本章总结 63
练习 64
第3章 线性表 66
3.1 线性表的概念和表抽象数据类型 66
3.1.1 表的概念和性质 66
3.1.2 表抽象数据类型 67
3.1.3 线性表的实现:基本考虑 69
3.2 顺序表的实现 69
3.2.1 基本实现方式 69
3.2.2 顺序表基本操作的实现 71
3.2.3 顺序表的结构 74
3.2.4 Python的list 76
3.2.5 顺序表的简单总结 78
3.3 链接表 79
3.3.1 线性表的基本需要和链接表 79
3.3.2 单链表 79
3.3.3 单链表类的实现 84
3.4 链表的变形和操作 88
3.4.1 单链表的简单变形 88
3.4.2 循环单链表 91
3.4.3 双链表 92
3.4.4 两个链表操作 95
3.4.5 不同链表的简单总结 98
3.5 表的应用 99
3.5.1 Josephus问题和基于“数组”概念的解法 99
3.5.2 基于顺序表的解 100
3.5.3 基于循环单链表的解 101
本章总结 102
练习 103
第4章 字符串 107
4.1 字符集、字符串和字符串操作 107
4.1.1 字符串的相关概念 107
4.1.2 字符串抽象数据类型 109
4.2 字符串的实现 109
4.2.1 基本实现问题和技术 109
4.2.2 实际语言里的字符串 110
4.2.3 Python的字符串 111
4.3 字符串匹配(子串查找) 112
4.3.1 字符串匹配 112
4.3.2 串匹配和朴素匹配算法 113
4.3.3 无回溯串匹配算法(KMP算法) 115
4.4 字符串匹配问题 119
4.4.1 串匹配/搜索的不同需要 120
4.4.2 一种简化的正则表达式 122
4.5 Python正则表达式 123
4.5.1 概况 124
4.5.2 基本情况 124
4.5.3 主要操作 125
4.5.4 正则表达式的构造 126
4.5.5 正则表达式的使用 132
本章总结 132
练习 133
第5章 栈和队列 135
5.1 概述 135
5.1.1 栈、队列和数据使用顺序 135
5.1.2 应用环境 136
5.2 栈:概念和实现 136
5.2.1 栈抽象数据类型 137
5.2.2 栈的顺序表实现 137
5.2.3 栈的链接表实现 139
5.3 栈的应用 140
5.3.1 简单应用:括号匹配问题 140
5.3.2 表达式的表示、计算和变换 142
5.3.3 栈与递归 149
5.4 队列 155
5.4.1 队列抽象数据类型 155
5.4.2 队列的链接表实现 155
5.4.3 队列的顺序表实现 156
5.4.4 队列的list实现 158
5.4.5 队列的应用 160
5.5 迷宫求解和状态空间搜索 162
5.5.1 迷宫求解:分析和设计 162
5.5.2 求解迷宫的算法 164
5.5.3 迷宫问题和搜索 167
5.6 几点补充 171
5.6.1 几种与栈或队列相关的结构 171
5.6.2 几个问题的讨论 172
本章总结 173
练习 173
第6章 二叉树和树 176
6.1 二叉树:概念和性质 176
6.1.1 概念和性质 177
6.1.2 抽象数据类型 181
6.1.3 遍历二叉树 181
6.2 二叉树的list实现 183
6.2.1 设计和实现 183
6.2.2 二叉树的简单应用:表达式树 185
6.3 优先队列 188
6.3.1 概念 188
6.3.2 基于线性表的实现 189
6.3.3 树形结构和堆 191
6.3.4 优先队列的堆实现 192
6.3.5 堆的应用:堆排序 195
6.4 应用:离散事件模拟 196
6.4.1 通用的模拟框架 197
6.4.2 海关检查站模拟系统 198
6.5 二叉树的类实现 202
6.5.1 二叉树结点类 203
6.5.2 遍历算法 204
6.5.3 二叉树类 208
6.6 哈夫曼树 209
6.6.1 哈夫曼树和哈夫曼算法 209
6.6.2 哈夫曼算法的实现 210
6.6.3 哈夫曼编码 211
6.7 树和树林 212
6.7.1 实例和表示 213
6.7.2 定义和相关概念 213
6.7.3 抽象数据类型和操作 215
6.7.4 树的实现 216
6.7.5 树的Python实现 218
本章总结 220
练习 220
第7章 图 224
7.1 概念、性质和实现 224
7.1.1 定义和图示 224
7.1.2 图的一些概念和性质 225
7.1.3 图抽象数据类型 227
7.1.4 图的表示和实现 228
7.2 图结构的Python实现 231
7.2.1 邻接矩阵实现 231
7.2.2 压缩的邻接矩阵(邻接表)实现 233
7.2.3 小结 235
7.3 基本图算法 235
7.3.1 图的遍历 236
7.3.2 生成树 238
7.4 最小生成树 240
7.4.1 最小生成树问题 240
7.4.2 Kruskal算法 240
7.4.3 Prim算法 243
7.4.4 Prim算法的改进 246
7.4.5 最小生成树问题 247
7.5 最短路径 248
7.5.1 最短路径问题 248
7.5.2 求解单源点最短路径的Dijkstra算法 248
7.5.3 求解任意顶点间最短路径的Floyd算法 252
7.6 AOV/AOE网及其算法 255
7.6.1 AOV网、拓扑排序和拓扑序列 255
7.6.2 拓扑排序算法 257
7.6.3 AOE网和关键路径 258
7.6.4 关键路径算法 259
本章总结 261
练习 262
第8章 字典和集合 265
8.1 数据存储、检索和字典 265
8.1.1 数据存储和检索 265
8.1.2 字典实现的问题 267
8.2 字典线性表实现 269
8.2.1 基本实现 269
8.2.2 有序线性表和二分法检索 270
8.2.3 字典线性表总结 272
8.3 散列和散列表 273
8.3.1 散列的思想和应用 273
8.3.2 散列函数 275
8.3.3 冲突的内消解:开地址技术 277
8.3.4 外消解技术 280
8.3.5 散列表的性质 280
8.4 集合 282
8.4.1 集合的概念、运算和抽象数据类型 282
8.4.2 集合的实现 283
8.4.3 特殊实现技术:位向量实现 285
8.5 Python的标准字典类dict和set 286
8.6 二叉排序树和字典 287
8.6.1 二叉排序树 288
8.6.2 最佳二叉排序树 295
8.6.3 一般情况的最佳二叉排序树 297
8.7 平衡二叉树 302
8.7.1 定义和性质 302
8.7.2 AVL树类 303
8.7.3 插入操作 304
8.7.4 相关问题 310
8.8 动态多分支排序树 311
8.8.1 多分支排序树 311
8.8.2 B树 312
8.8.3 B+树 314
本章总结 315
练习 316
第9章 排序 319
9.1 问题和性质 319
9.1.1 问题定义 319
9.1.2 排序算法 320
9.2 简单排序算法 323
9.2.1 插入排序 323
9.2.2 选择排序 325
9.2.3 交换排序 327
9.3 快速排序 328
9.3.1 快速排序的表实现 329
9.3.2 程序实现 330
9.3.3 复杂度 331
9.3.4 另一种简单实现 332
9.4 归并排序 332
9.4.1 顺序表的归并排序 333
9.4.2 归并算法的设计问题 333
9.4.3 归并排序函数定义 333
9.4.4 算法分析 335
9.5 其他排序方法 335
9.5.1 分配排序和基数排序 335
9.5.2 一些与排序有关的问题 338
9.5.3 Python系统的list排序 339
本章总结 340
练习 342
参考文献 344
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《数据失控》(美)约翰·切尼-利波尔德(John Cheney-Lippold)著 2019
- 《中国生态系统定位观测与研究数据集 森林生态系统卷 云南西双版纳》邓晓保·唐建维 2010
- 《穿越数据的迷宫 数据管理执行指南》Laura Sebastian-Coleman 2020
- 《妈妈365天英语》(韩)申艺莉著 2014
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019