图书介绍

数据结构与问题求解 Java语言描述2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

数据结构与问题求解 Java语言描述
  • (美)Mark Allen Weiss著 著
  • 出版社: 人民邮电出版社
  • ISBN:
  • 出版时间:2006
  • 标注页数:480页
  • 文件大小:130MB
  • 文件页数:500页
  • 主题词:

PDF下载


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

下载说明

数据结构与问题求解 Java语言描述PDF格式电子书版下载

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

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

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

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

图书目录

第一部分 算法和构件块2

第1章 算法分析2

1.1 什么是算法分析2

1.2 算法运行时间的实例5

1.3 连续子序列最大和的问题6

1.3.1 简单的O(n3)算法7

1.3.2 改进的O(N2)算法8

1.3.3 线性算法9

1.4 一般的大O规则11

1.5 对数14

1.6 静态查找问题15

1.6.1 顺序查找15

1.6.2 二分搜索16

1.6.3 插值查找18

1.7 算法分析的检查18

1.8 大O分析的局限性19

小结20

关键概念20

常见错误21

网上资源21

习题21

参考文献26

第2章 集合类API27

2.1 引言27

2.2 迭代器模式28

2.2.1 基本的迭代器设计29

2.2.2 基于继承的迭代器和工厂方法30

2.3 集合类API:容器和迭代器32

2.3.1 Collection接口32

2.3.2 Iterator接口35

2.4 泛型算法36

2.4.1 Comparator函数对象37

2.4.2 Collections类37

2.4.3 二分搜索39

2.4.4 排序40

2.5 List接口40

2.5.1 ListIterator接口41

2.5.2 LinkedList类42

2.6 栈和队列44

2.6.1 栈44

2.6.2 栈与计算机语言45

2.6.3 队列46

2.6.4 集合类API中的栈和队列46

2.7 集合47

2.7.1 TreeSet类48

2.7.2 HashSet类48

2.8 映射52

2.9 优先级队列55

小结57

关键概念57

常见错误58

网上资源58

习题59

参考文献61

第3章 递归62

3.1 什么是递归62

3.2 背景:数学归纳法证明63

3.3 基本的递归65

3.3.1 以任何数制打印数66

3.3.2 为什么可行67

3.3.3 原理解析68

3.3.4 太多的递归可能是危险的69

3.3.5 树的预习70

3.3.6 其他实例71

3.4 数值应用74

3.4.1 模运算74

3.4.2 模的幂运算75

3.4.3 最大公因子和乘法逆元素76

3.4.4 RSA密码系统78

3.5 分治算法79

3.5.1 连续子序列最大和的问题80

3.5.2 对一个基本的分治情况的分析82

3.5.3 分治算法运行时间的通用上界84

3.6 动态规划86

3.7 回溯89

小结92

关键概念92

常见错误93

网上资源93

习题94

参考文献96

第4章 排序算法97

4.1 排序为什么重要97

4.2 预备知识98

4.3 插入排序及其他简单排序算法的分析98

4.4 谢尔排序101

4.5 归并排序103

4.5.1 有序数组的线性时间合并103

4.5.2 归并排序算法105

4.6 快速排序106

4.6.1 快速排序算法107

4.6.2 快速排序的分析108

4.6.3 挑选中心点111

4.6.4 一种划分策略112

4.6.5 键等于中心点113

4.6.6 三个元素的中值划分114

4.6.7 小规模数组114

4.6.8 Java快速排序程序115

4.7 快速选择117

4.8 排序的下界118

小结119

关键概念119

常见错误120

网上资源120

习题120

参考文献123

第5章 随机化124

5.1 为什么需要随机数124

5.2 随机数生成器125

5.3 非均匀分布随机数129

5.4 产生随机排列130

5.5 随机化算法131

5.6 随机化素数检验133

小结135

关键概念135

常见错误136

网上资源136

习题136

参考文献138

第二部分 应用140

第6章 娱乐和游戏140

6.1 单词搜索迷宫140

6.1.1 理论140

6.1.2 Java实现142

6.2 Tic-Tac-Toe游戏146

6.2.1 α-β剪枝146

6.2.2 置换表148

6.2.3 计算机象棋151

小结152

关键概念152

常见错误152

网上资源152

习题153

参考文献154

第7章 栈和编译器155

7.1 平衡符号检查器155

7.1.1 基本算法155

7.1.2 实现156

7.2 简单计算器163

7.2.1 后缀机164

7.2.2 中缀到后缀的转化165

7.2.3 实现166

7.2.4 表达式树172

小结173

关键概念173

常见错误174

网上资源174

习题174

参考文献175

第8章 实用程序176

8.1 文件压缩176

8.1.1 前缀编码177

8.1.2 赫夫曼算法178

8.1.3 实现180

8.2 交叉引用生成器191

8.2.1 基本思想191

8.2.2 Java实现191

小结194

关键概念194

常见错误195

网上资源195

习题195

参考文献197

第9章 模拟198

9.1 约瑟夫问题198

9.1.1 简单实现方案199

9.1.2 更高效的算法200

9.2 事件驱动模拟202

9.2.1 基本思路202

9.2.2 实例:调制解调器银行的模拟203

小结209

关键概念209

常见错误209

网上资源209

习题209

第10章 图和路径211

10.1 图的定义211

10.2 非加权的最短路径问题221

10.2.1 理论221

10.2.2 Java实现223

10.3 非负权值的最短路径算法224

10.3.1 理论:Dijkstra算法224

10.3.2 Java实现227

10.4 含负权值的最短路径问题228

10.4.1 理论228

10.4.2 Java实现229

10.5 无环图的路径问题230

10.5.1 拓扑排序230

10.5.2 无环图最短路径算法的理论232

10.5.3 Java实现233

10.5.4 应用:关键路径分析234

小结236

关键概念236

常见错误237

网上资源237

习题238

参考文献240

第三部分 实现242

第11章 内部类和ArrayList的实现242

11.1 迭代器与嵌套类242

11.2 迭代器和内部类244

11.3 AbstractCollection类246

11.4 StringBuilder249

11.5 使用迭代器的ArrayList的实现250

小结254

关键概念254

常见错误254

网上资源254

习题255

第12章 栈和队列257

12.1 动态数组的实现257

12.1.1 栈257

12.1.2 队列260

12.2 链表实现265

12.2.1 栈265

12.2.2 队列267

12.3 两种实现方式的比较270

12.4 java.util.Stack类270

12.5 双向队列271

小结271

关键概念272

常见错误272

网上资源272

习题272

第13章 链表273

13.1 基本思想273

13.1.1 头结点274

13.1.2 迭代器类275

13.2 Java实现276

13.3 双向链表和循环链表281

13.4 有序链表283

13.5 集合类API中LinkedList类的实现284

小结292

关键概念292

常见错误293

网上资源293

习题293

第14章 树296

14.1 普通的树296

14.1.1 定义296

14.1.2 实现297

14.1.3 应用:文件系统298

14.2 二叉树301

14.3 递归和树306

14.4 树的遍历:迭代器类307

14.4.1 后序遍历310

14.4.2 中序遍历313

14.4.3 前序遍历314

14.4.4 层次遍历316

小结317

关键概念317

常见错误318

网上资源318

习题318

第15章 二叉查找树321

15.1 基本思想321

15.1.1 操作322

15.1.2 Java实现323

15.2 顺序统计量329

15.3 二叉查找树操作的分析332

15.4 AVL树335

15.4.1 性质335

15.4.2 单旋转337

15.4.3 双旋转339

15.4.4 AVL插入小结341

15.5 红黑树341

15.5.1 自下而上的插入342

15.5.2 自上而下的红黑树344

15.5.3 Java实现345

15.5.4 自上而下的删除350

15.6 AA树352

15.6.1 插入353

15.6.2 删除354

15.6.3 Java实现355

15.7 集合类API中TreeSet类和TreeMap类的实现358

15.8 B树371

小结376

关键概念376

常见错误377

网上资源377

习题378

参考文献379

第16章 散列表382

16.1 基本概念382

16.2 散列函数383

16.3 线性探测法385

16.3.1 线性探测法的直观分析386

16.3.2 实际上所发生的:初始聚类386

16.3.3 find操作的分析387

16.4 二次探测法388

16.4.1 Java实现392

16.4.2 二次探测法的分析398

16.5 分别链接散列399

16.6 散列表与二叉查找树399

16.7 散列表的应用400

小结400

关键概念400

常见错误401

网上资源401

习题401

参考文献403

第17章 优先级队列:二叉堆404

17.1 基本概念404

17.1.1 结构性405

17.1.2 堆的有序性406

17.1.3 允许的操作406

17.2 基本操作的实现408

17.2.1 插入408

17.2.2 deleteMin操作410

17.3 buildHeap操作:线性时间的堆构造411

17.4 高级操作:decreaseKey和merge414

17.5 内排序:堆排序414

17.6 外排序416

17.6.1 为什么需要新的算法417

17.6.2 外排序模型417

17.6.3 简单算法417

17.6.4 多路归并418

17.6.5 多阶段归并419

17.6.6 置换选择法420

小结421

关键概念422

常见错误422

网上资源422

习题422

参考文献425

第四部分 高级数据结构428

第18章 伸展树428

18.1 自调整和均摊法的分析428

18.1.1 均摊法时间限度429

18.1.2 简单的自调整策略(并不管用)429

18.2 基本的自底向上的伸展树430

18.3 基本的伸展树操作432

18.4 自底向上伸展的分析432

18.5 自顶向下的伸展树436

18.6 自顶向下伸展树的实现439

18.7 伸展树与其他搜索树的比较442

小结442

关键概念443

常见错误443

网上资源443

习题443

参考文献444

第19章 归并优先级队列445

19.1 斜堆445

19.1.1 归并是基本操作445

19.1.2 满足堆有序性的树的简化归并446

19.1.3 斜堆:一个简单的修改446

19.1.4 斜堆的分析447

19.2 偶堆448

19.2.1 偶堆操作449

19.2.2 偶堆的实现450

19.2.3 应用:Dijkstra最短加权路径算法455

小结457

关键概念457

常见错误457

网上资源457

习题457

参考文献458

第20章 不相交集类459

20.1 等价关系459

20.2 动态等价及应用459

20.2.1 应用:生成迷宫460

20.2.2 应用:最小生成树462

20.2.3 应用:最近的共同祖先问题463

20.3 快速查找算法466

20.4 快速并算法466

20.4.1 智能并算法468

20.4.2 路径压缩469

20.5 Java实现470

20.6 按秩并和路径压缩的最坏情况471

小结476

关键概念477

常见错误478

网上资源478

习题478

参考文献479

附录A 运算符481

附录B 位运算符482

热门推荐