图书介绍

数据结构 Python语言描述【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

数据结构 Python语言描述
  • (美)兰伯特(Kenneth A.Lambert)著;李军译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115464618
  • 出版时间:2018
  • 标注页数:302页
  • 文件大小:43MB
  • 文件页数:316页
  • 主题词:数据结构-高等学校-教材;软件工具-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

数据结构 Python语言描述PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Python编程基础1

1.1基本程序要素1

1.1.1程序和模块1

1.1.2 Python程序示例:猜数字1

1.1.3编辑、编译并运行Python程序2

1.1.4程序注释3

1.1.5词法元素3

1.1.6拼写和命名惯例3

1.1.7语法元素4

1.1.8字面值4

1.1.9字符串字面值4

1.1.10运算符和表达式5

1.1.11函数调用5

1.1.12 pRInt函数5

1.1.13 input函数5

1.1.14类型转换函数和混合模式运算6

1.1.15 可选的和关键字函数参数6

1.1.16变量和赋值语句6

1.1.17 Python数据类型7

1.1.18 import语句7

1.1.19获取关于程序组件的帮助7

1.2控制语句8

1.2.1条件式语句8

1.2.2使用if name__==“_main”9

1.2.3循环语句10

1.3字符串及其运算10

1.3.1运算符10

1.3.2格式化字符串以便输出11

1.3.3对象和方法调用13

1.4内建Python集合及其操作13

1.4.1列表14

1.4.2元组14

1.4.3遍历序列14

1.4.4字典15

1.4.5搜索一个值15

1.4.6对集合应用模式匹配15

1.5编写新的函数16

1.5.1函数定义16

1.5.2递归函数17

1.5.3嵌套的函数定义19

1.5.4高阶函数19

1.5.5使用lambda表达式创建匿名函数20

1.6捕获异常20

1.7文件及其操作21

1.7.1文本文件的输出22

1.7.2将数字写入到一个文本文件22

1.7.3从文本文件读取文本23

1.7.4从文件读取数字24

1.7.5使用pickle读写对象24

1.8创建新的类25

1.9编程项目28

第2章 集合概览30

2.1集合类型30

2.1.1线性集合30

2.1.2层级集合31

2.1.3图集合31

2.1.4无序集合31

2.1.5有序集合31

2.1.6集合类型的分类32

2.2集合上的操作32

2.3集合的实现34

2.4小结35

2.5复习题35

2.6编程项目36

第3章 搜索、排序和复杂度分析37

3.1评估算法的性能37

3.1.1度量算法的运行时间37

3.1.2统计指令39

3.1.3度量算法所使用的内存41

3.1.4练习3.141

3.2复杂度分析41

3.2.1复杂度的阶41

3.2.2大O表示法43

3.2.3常量比例的作用43

3.2.4练习3.243

3.3搜索算法44

3.3.1搜索最小值44

3.3.2顺序搜索一个列表44

3.3.3最好情况、最坏情况和平均情况的性能45

3.3.4有序列表的二叉搜索45

3.3.5比较数据项47

3.3.6练习3.348

3.4基本排序算法48

3.4.1选择排序48

3.4.2冒泡排序49

3.4.3插入排序50

3.4.4再谈最好情况、最坏情况和平均情况的性能52

3.4.5练习3.452

3.5更快的排序53

3.5.1快速排序简介53

3.5.2合并排序56

3.5.3练习3.559

3.6指数算法:递归式的Fibonacci59

3.7案例学习:算法探查器61

3.7.1需求61

3.7.2分析61

3.7.3设计62

3.7.4实现(编写代码)63

3.8小结65

3.9复习题66

3.10编程项目67

第4章 数组和链表结构69

4.1数组数据结构69

4.1.1随机访问和连续内存71

4.1.2静态内存和动态内存72

4.1.3物理大小和逻辑大小72

4.1.4练习4.173

4.2数组的操作73

4.2.1增加数组的大小73

4.2.2减小数组的大小74

4.2.3在数组中插入一项74

4.2.4从数组中删除一项75

4.2.5复杂度权衡:时间、空间和数组76

4.2.6练习4.276

4.3二维数组77

4.3.1处理网格77

4.3.2创建并初始化网格77

4.3.3定义Grid类78

4.3.4杂乱的网格和多维数组79

4.3.5练习4.379

4.4链表结构80

4.4.1单链表结构和双链表结构80

4.4.2非连续性内存和节点81

4.4.3定义一个单链表节点类82

4.4.4使用单链表节点类82

4.4.5练习4.484

4.5单链表结构上的操作84

4.5.1遍历84

4.5.2搜索85

4.5.3替换86

4.5.4在开始处插入86

4.5.5在末尾插入87

4.5.6从开始处删除87

4.5.7从末尾删除88

4.5.8在任何位置插入89

4.5.9从任意位置删除90

4.5.10复杂度权衡:时间、空间和单链表结构91

4.5.11练习4.592

4.6链表的变体92

4.6.1带有一个哑头节点的循环链表结构92

4.6.2双链表结构93

4.6.3练习4.695

4.7小结95

4.8复习题96

4.9编程项目96

第5章 接口、实现和多态98

5.1开发接口98

5.1.1定义包接口98

5.1.2指定参数和返回值99

5.1.3构造方法和实现类101

5.1.4先验条件、后验条件、异常和文档101

5.1.5用Python编写接口102

5.1.6练习5.1103

5.2开发一个基于数组的实现103

5.2.1选择并初始化数据结构103

5.2.2先完成容易的方法104

5.2.3完成迭代器105

5.2.4完成使用迭代器的方法106

5.2.5 in运算符和contains方法106

5.2.6完成remove方法107

5.2.7练习5.2107

5.3开发一个基于链表的实现107

5.3.1初始化数据结构108

5.3.2完成迭代器109

5.3.3完成clear和add方法109

5.3.4完成remove方法109

5.3.5练习5.3110

5.4两个包实现的运行时性能110

5.5测试两个包实现111

5.6用UML图表示包资源112

5.7小结113

5.8复习题113

5.9编程项目114

第6章 继承和抽象类115

6.1使用继承定制一个己有的类115

6.1.1已有类的子类化115

6.1.2再谈init方法116

6.1.3添加新的contains方法117

6.1.4修改已有的add方法117

6.1.5 ArraySortedBag的运行时间性能118

6.1.6 Python中的类层级118

6.1.7练习6.1119

6.2使用抽象类去除代码冗余性119

6.2.1设计一个AbstractBag类119

6.2.2重新编写AbstractBag中的init方法120

6.2.3修改AbstractBag的子类120

6.2.4将AbstractBag中的add方法泛化121

6.3所有集合的一个抽象类122

6.3.1将AbstractCollection整合到集合层级中122

6.3.2在__eq__方法中使用两个迭代器123

6.3.3练习6.2124

6.4小结124

6.5复习题124

6.6编程项目125

第7章 栈127

7.1栈概览127

7.2使用栈128

7.2.1栈接口128

7.2.2初始化一个栈129

7.2.3示例应用程序:匹配括号129

7.2.4练习7.1131

7.3栈的3种应用131

7.3.1计算算术表达式131

7.3.2计算后缀表达式132

7.3.3练习7.2133

7.3.4将中缀表达式转换为后缀表达式133

7.3.5练习7.3135

7.3.6回溯算法135

7.3.7内存管理137

7.4栈的实现138

7.4.1测试驱动程序138

7.4.2将栈添加到集合层级中139

7.4.3数组实现140

7.4.4链表实现141

7.4.5 AbstractStack类的作用144

7.4.6两种实现的时间和空间分析144

7.4.7练习7.4145

7.5案例学习:计算后缀表达式145

7.5.1要求145

7.5.2分析145

7.5.3设计148

7.5.4实现150

7.6小结153

7.7复习题153

7.8编程项目154

第8章 队列156

8.1队列概览156

8.2队列接口及其应用157

练习8.1158

8.3队列的两个应用159

8.3.1模拟159

8.3.2轮询CPU调度161

8.3.3练习8.2161

8.4队列的实现161

8.4.1队列的链表实现161

8.4.2数组实现163

8.4.3两种实现的时间和空间复杂度分析164

8.4.4练习8.3165

8.5案例学习:模拟超市排队结账165

8.5.1要求165

8.5.2分析165

8.5.3用户界面166

8.5.4类及其作用166

8.6优先队列171

练习8.4175

8.7案例学习:急症室调度175

8.7.1需求175

8.7.2分析175

8.7.3类176

8.7.4设计和实现177

8.8小结179

8.9复习题179

8.10编程项目180

第9章 列表182

9.1概览182

9.2使用列表183

9.2.1基于索引的操作183

9.2.2基于内容的操作183

9.2.3基于位置的操作184

9.2.4列表的接口187

9.2.5练习9.1188

9.3列表的应用188

9.3.1堆存储管理188

9.3.2组织磁盘上的文件189

9.3.3其他集合的实现190

9.4列表实现191

9.4.1 AbstractList类的角色191

9.4.2基于数组的实现192

9.4.3链表实现194

9.4.4两种实现的时间和空间分析196

9.4.5练习9.2197

9.5实现列表迭代器197

9.5.1列表迭代器的角色和作用197

9.5.2设置和实例化一个列表迭代器类198

9.5.3列表迭代器中的导航方法199

9.5.4列表迭代器中的修改器方法200

9.5.5链表列表的列表迭代器的设计201

9.5.6列表迭代器实现的时间和空间分析201

9.6案例学习:开发一个有序的列表201

9.6.1要求201

9.6.2分析202

9.6.3设计202

9.6.4实现(代码)204

9.7小结205

9.8复习题205

9.9编程项目206

第10章 树208

10.1树的概览208

10.1.1树的术语208

10.1.2普通的树和二叉树209

10.1.3树的递归定义210

10.1.4练习10.1210

10.2为什么要使用树210

10.3二叉树的形状211

练习10.2213

10.4二叉树的3种常见应用213

10.4.1堆213

10.4.2二叉搜索树214

10.4.3表达式树215

10.4.4练习10.3216

10.5二叉树的遍历216

10.5.1前序遍历216

10.5.2中序遍历217

10.5.3后序遍历217

10.5.4层序遍历217

10.6开发二叉搜索树217

10.6.1二叉搜索树接口218

10.6.2链表实现的数据结构219

10.6.3二叉搜索树的复杂度分析223

10.6.4练习10.4224

10.7递归的后代解析和编程语言224

10.7.1语法简介224

10.7.2在语言中识别、解析和解释句子226

10.7.3词法分析和扫描器226

10.7.4解析策略227

10.8案例学习:解析和表达式树227

10.8.1要求227

10.8.2分析228

10.8.3节点类的设计和实现228

10.8.4解析器类的设计和实现230

10.9二叉树的数组实现231

练习10.5232

10.10实现堆232

练习10.6234

10.11小结234

10.12复习题235

10.13编程项目236

第11章 集和字典238

11.1使用集238

11.2 Python的set类239

11.2.1集的一个示例会话239

11.2.2集的应用240

11.2.3集和包的关系240

11.2.4集和字典的关系240

11.2.5集的实现240

11.2.6练习11.1241

11.3集的基于数组和链表的实现241

11.3.1 AbstractSet类241

11.3.2 ArraySet类242

11.4使用字典243

11.5基于数组和基于链表的字典实现244

11.5.1 Item类244

11.5.2 AbstractDict类245

11.5.3 ArrayDict类246

11.5.4集和字典的基于数组和列表的实现的复杂度分析247

11.5.5练习11.2248

11.6哈希策略248

11.6.1冲突和密度的关系249

11.6.2非数字键的哈希250

11.6.3线性探测251

11.6.4二次探测252

11.6.5链化253

11.6.6复杂度分析253

11.6.7练习11.3254

11.7案例学习:探查哈希策略254

11.7.1需求255

11.7.2分析255

11.7.3设计256

11.8集的哈希实现258

11.9字典的哈希实现261

练习11.4263

11.10有序的集和字典263

11.11小结264

11.12复习题264

11.13编程项目265

第12章 图267

12.1图的术语267

练习12.1269

12.2为什么使用图270

12.3图的表示270

12.3.1相邻矩阵270

12.3.2 邻接表271

12.3.3两种表示的分析272

12.3.4运行时间的进一步考虑272

12.3.5练习12.2273

12.4图的遍历273

12.4.1泛型遍历算法273

12.4.2广度优先遍历和深度优先遍历274

12.4.3图区域275

12.4.4练习12.3276

12.5图中的树276

12.5.1生成树和森林276

12.5.2最小生成树277

12.5.3最小生成树的算法277

12.6拓扑排序279

12.7最短路径问题279

12.7.1 Dijkstra算法280

12.7.2初始化步骤280

12.7.3计算步骤281

12.7.4无限的表示和用法282

12.7.5分析282

12.7.6练习12.4282

12.7.7 Floyd算法283

12.7.8分析283

12.8开发一个图集合284

12.8.1使用图集合的示例284

12.8.2 LinkedDirected-Graph类285

12.8.3 LinkedVertex类288

12.8.4 LinkedEdge类289

12.9案例学习:测试图算法290

12.9.1需求290

12.9.2分析290

12.9.3 GraphDemoView类和GraphDemoModel类291

12.9.4实现(代码)292

12.10小结295

12.11复习题296

12.12编程项目297

附录 供Python程序员使用的集合框架299

热门推荐