数据结构与算法python语言实现_数据结构与算法:Python语言实现

出版者的话

译者序

前言

致谢

作者简介

第1章 Python入门 1

1.1 Python概述 1

1.1.1 Python解释器 1

1.1.2 Python程序预览 1

1.2 Python对象 2

1.2.1 标识符、对象和赋值语句 2

1.2.2 创建和使用对象 4

1.2.3 Python的内置类 4

1.3 表达式、运算符和优先级 8

1.4 控制流程 12

1.4.1 条件语句 12

1.4.2 循环语句 14

1.5 函数 16

1.5.1 信息传递 17

1.5.2 Python的内置函数 19

1.6 简单的输入和输出 20

1.6.1 控制台输入和输出 21

1.6.2 文件 21

1.7 异常处理 22

1.7.1 抛出异常 23

1.7.2 捕捉异常 24

1.8 迭代器和生成器 26

1.9 Python的其他便利特点 28

1.9.1 条件表达式 29

1.9.2 解析语法 29

1.9.3 序列类型的打包和解包 30

1.10 作用域和命名空间 31

1.11 模块和import语句 32

1.12 练习 34

扩展阅读 36

第2章 面向对象编程 37

2.1 目标、原则和模式 37

2.1.1 面向对象的设计目标 37

2.1.2 面向对象的设计原则 38

2.1.3 设计模式 39

2.2 软件开发 40

2.2.1 设计 40

2.2.2 伪代码 41

2.2.3 编码风格和文档 42

2.2.4 测试和调试 43

2.3 类定义 44

2.3.1 例子:CreditCard类 45

2.3.2运算符重载和Python的特殊方法 48

2.3.3 例子:多维向量类 50

2.3.4 迭代器 51

2.3.5 例子:Range类 52

2.4 继承 53

2.4.1 扩展CreditCard类 54

2.4.2 数列的层次图 57

2.4.3 抽象基类 60

2.5 命名空间和面向对象 62

2.5.1 实例和类命名空间 62

2.5.2 名称解析和动态调度 65

2.6 深拷贝和浅拷贝 65

2.7 练习 67

扩展阅读 70

第3章 算法分析 71

3.1 实验研究 71

3.2 本书使用的7种函数 74

3.2.1 常数函数 74

3.2.2 对数函数 74

3.2.3 线性函数 75

3.2.4 n-log-n函数 75

3.2.5 二次函数 76

3.2.6 三次函数和其他多项式 77

3.2.7 指数函数 77

3.2.8 比较增长率 79

3.3 渐近分析 79

3.3.1 大O符号 80

3.3.2 比较分析 82

3.3.3 算法分析示例 84

3.4 简单的证明技术 89

3.4.1 示例 89

3.4.2 反证法 89

3.4.3 归纳和循环不变量 90

3.5 练习 91

扩展阅读 95

第4章 递归 96

4.1 说明性的例子 96

4.1.1 阶乘函数 96

4.1.2 绘制英式标尺 97

4.1.3 二分查找 99

4.1.4 文件系统 101

4.2 分析递归算法 104

4.3 递归算法的不足 106

4.4 递归的其他例子 109

4.4.1 线性递归 109

4.4.2 二路递归 112

4.4.3 多重递归 113

4.5 设计递归算法 114

4.6 消除尾递归 115

4.7 练习 116

扩展阅读 118

第5章 基于数组的序列 119

5.1 Python序列类型 119

5.2 低层次数组 119

5.2.1 引用数组 121

5.2.2 Python中的紧凑数组 122

5.3 动态数组和摊销 124

5.3.1 实现动态数组 126

5.3.2 动态数组的摊销分析 127

5.3.3 Python列表类 130

5.4 Python序列类型的效率 130

5.4.1 Python的列表和元组类 130

5.4.2 Python的字符串类 134

5.5 使用基于数组的序列 136

5.5.1 为游戏存储高分 136

5.5.2 为序列排序 138

5.5.3 简单密码技术 140

5.6 多维数据集 142

5.7 练习 145

扩展阅读 147

第6章 栈、队列和双端队列 148

6.1 栈 148

6.1.1 栈的抽象数据类型 148

6.1.2简单的基于数组的栈实现 149

6.1.3 使用栈实现数据的逆置 152

6.1.4 括号和HTML标记匹配 152

6.2 队列 155

6.2.1 队列的抽象数据类型 155

6.2.2 基于数组的队列实现 156

6.3 双端队列 160

6.3.1双端队列的抽象数据类型 160

6.3.2使用环形数组实现双端队列 161

6.3.3Python collections模块中的双端队列 162

6.4 练习 163

扩展阅读 165

第7章 链表 166

7.1 单向链表 166

7.1.1 用单向链表实现栈 169

7.1.2 用单向链表实现队列 171

7.2 循环链表 173

7.2.1 轮转调度 173

7.2.2 用循环链表实现队列 174

7.3 双向链表 175

7.3.1 双向链表的基本实现 177

7.3.2 用双向链表实现双端队列 179

7.4 位置列表的抽象数据类型 180

7.4.1含位置信息的列表抽象数据类型 182

7.4.2 双向链表实现 183

7.5 位置列表的排序 186

7.6 案例研究:维护访问频率 186

7.6.1 使用有序表 187

7.6.2 启发式动态调整列表 188

7.7基于链接的序列与基于数组的序列 190

7.8 练习 192

扩展阅读 195

第8章 树 196

8.1 树的基本概念 196

8.1.1 树的定义和属性 196

8.1.2 树的抽象数据类型 199

8.1.3 计算深度和高度 201

8.2 二叉树 203

8.2.1 二叉树的抽象数据类型 204

8.2.2 二叉树的属性 206

8.3 树的实现 207

8.3.1 二叉树的链式存储结构 207

8.3.2 基于数组表示的二叉树 212

8.3.3 一般树的链式存储结构 214

8.4 树的遍历算法 214

8.4.1 树的先序和后序遍历 214

8.4.2 树的广度优先遍历 216

8.4.3 二叉树的中

^ 收 起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值