当前位置:首页 > 工业技术
数据结构与算法 Java语言版
数据结构与算法 Java语言版

数据结构与算法 Java语言版PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)Adam Drozdek著;周翔等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111119029
  • 页数:489 页
图书介绍:本书重点讲述数据结构,并强调了数据结构与算法之间的联系。在数据结构的实现中用Java作为编程语言。
《数据结构与算法 Java语言版》目录

第1章 Java语言的面向对象编程 1

1.1 Java入门 1

1.1.1 变量声明 1

1.1.2 运算符 3

1.1.3 选择语句 4

1.1.4 循环语句 5

1.1.5 异常处理 5

1.2 Java面向对象编程 7

1.2.1 封装 7

1.2.2 抽象数据类型 12

1.2.3 继承 13

1.2.4 多态性 15

1.3 输入和输出 18

1.4 Java和指针 21

1.5 java.util中的向量 24

1.6 数据结构和面向对象编程 28

1.7 示例学习:随机存取文件 29

1.8 习题 36

1.9 编程作业 38

参考文献 40

第2章 复杂性分析 41

2.1 计算复杂性和渐近复杂性 41

2.2 大O表示法 42

2.3 大O表示法的性质 43

2.4 Ω和Θ表示法 44

2.5 可能出现的问题 45

2.6 复杂性示例 46

2.7 寻找渐近复杂性:示例 47

2.8 最好的、平均的和最坏的情况 49

2.9 补偿复杂性 51

2.10 习题 54

参考文献 57

第3章 链表 59

3.1 单向链表 59

3.1.1 插入 63

3.1.2 删除 64

3.1.3 查找 67

3.2 双向链表 67

3.3 循环链表 72

3.4 跳转表 73

3.5 自组织表 77

3.6 稀疏表 80

3.7 用java.util的链表 83

3.8 小结 86

3.9 示例学习:图书馆管理 86

3.10 习题 94

3.11 编程作业 95

参考文献 98

第4章 堆栈和队列 99

4.1 堆栈 99

4.2 队列 106

4.3 优先级队列 112

4.4 示例学习:逃离迷宫 113

4.5 习题 117

4.6 编程作业 119

参考文献 120

第5章 递归 123

5.1 递归定义 123

5.2 方法调用和递归实现 125

5.3 剖析一个递归调用 126

5.4 尾递归 129

5.5 非尾递归 130

5.6 间接递归 134

5.7 嵌套递归 135

5.8 过分递归 136

5.9 回溯 138

5.10 小结 144

5.11 示例学习:一个递归下降解释器 144

5.12 习题 150

5.13 编程作业 153

参考文献 155

第6章 二叉树 157

6.1 树、二叉树和折半查找树 157

6.2 实现二叉树 160

6.3 搜索折半查找树 162

6.4 树的遍历 164

6.4.1 广度优先遍历 164

6.4.2 深度优先遍历 165

6.4.3 无堆栈深度优先遍历 170

6.5 插入 176

6.6 删除 178

6.6.1 归并删除法 179

6.6.2 拷贝删除法 180

6.7 树的平衡 182

6.7.1 DSW算法 185

6.7.2 AVL树 187

6.8 自适应树 191

6.8.1 自调整树 191

6.8.2 扩展 192

6.9 堆 195

6.9.1 堆作为优先级队列 197

6.9.2 以堆形式组织数组 198

6.10 波兰表示法和表示树 202

6.11 示例学习:计算单词频率 205

6.12 习题 211

6.13 编程作业 213

参考文献 216

第7章 多分树 219

7.1 B树家族 219

7.1.1 B树 220

7.1.2 B?树 228

7.1.3 B+树 229

7.1.4 前缀B+树 231

7.1.5 比特树 234

7.1.6 R树 235

7.1.7 2-4树 237

7.1.8 java.util中的集合 243

7.1.9 java.util中的映像 247

7.2 线索 250

7.3 小结 257

7.4 示例学习:拼写检查程序 257

7.5 习题 266

7.6 编程作业 267

参考文献 269

第8章 图 273

8.1 图的表示法 274

8.2 图的遍历 275

8.3 最短路径 278

8.4 环路检测 286

8.5 生成树 289

8.5.1 Boruvka算法 289

8.5.2 Kruskal算法 290

8.5.3 Jarník-Prim算法 290

8.5.4 Dijkstra算法 293

8.6 连通性 293

8.6.1 无向图的连通性 294

8.6.2 有向图的连通性 296

8.7 拓扑排序 298

8.8.1 最大流 300

8.8 网络 300

8.8.2 最小代价的最大流量 309

8.9 匹配 312

8.9.1 分配问题 316

8.9.2 非二部图中的匹配 318

8.10 欧拉图和哈密顿图 320

8.10.1 欧拉图 320

8.10.2 哈密顿图 321

8.11 示例学习:典型代表问题 323

8.12 习题 330

8.13 编程作业 333

参考文献 334

第9章 排序 337

9.1 元素排序算法 338

9.1.1 插入排序 338

9.1.2 选择排序 340

9.1.3 起泡排序 341

9.2 决策树 343

9.3 高效排序算法 346

9.3.1 希尔排序 346

9.3.2 堆排序 349

9.3.3 快速排序 351

9.3.4 归并排序 356

9.3.5 基数排序 359

9.4 java.util中的排序 362

9.5 小结 365

9.6 示例学习:多项式加法 366

9.7 习题 372

9.8 编程作业 373

参考文献 374

第10章 散列 377

10.1 散列函数 377

10.1.1 除法 377

10.1.2 折叠法 378

10.1.3 平方取中散列函数 378

10.1.4 提取方法 378

10.1.5 基数变换 379

10.2 冲突解决 379

10.2.1 开放地址法 379

10.2.2 链 384

10.2.3 桶地址法 385

10.3 删除 386

10.4 理想散列函数 386

10.4.1 Cichelli方法 387

10.4.2 FHCD算法 389

10.5 可扩展文件的散列函数 391

10.5.1 可扩展散列 391

10.5.2 线性散列 393

10.6 java.util中的散列 395

10.7 示例学习 399

10.8 习题 406

10.9 编程作业 407

参考文献 408

第11章 数据压缩 411

11.1 数据压缩的条件 411

11.2 霍夫曼编码 412

11.3 Shannon-Fano码 422

11.4 运行长度编码 423

11.5 Ziv-Lempel编码 424

11.6 示例学习:结合运行长度编码的霍夫曼方法 427

11.7 习题 435

11.8 编程作业 436

参考文献 437

第12章 存储管理 439

12.1 连续适应方法 439

12.2 非连续适应方法 440

12.3 无用单元收集 448

12.3.1 标记与清除算法 448

12.3.2 拷贝方法 454

12.3.3 增量式无用单元收集 455

12.4 小结 461

12.5 示例学习:内置无用单元收集器 462

12.6 习题 469

12.7 编程作业 470

参考文献 472

附录A 大O的计算 475

人名索引 479

名词索引 483

返回顶部