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

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

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:(美)杜兰克(Drake,P.)著;朱剑平等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302137986
  • 页数:437 页
图书介绍:本书通过大量的小游戏设计,透彻讲解数据结构与算法。
《数据结构与算法 Java版》目录

第Ⅰ部分 面向对象程序设计 2

第1章 封装 2

1.1 软件开发 2

1.1.1 良好的程序 2

1.1.2 封装 3

1.1.3 软件开发周期 5

习题 6

1.2 类和对象 7

1.2.1 类 7

1.2.2 对象、字段和方法 8

1.2.3 构造函数 9

1.2.4 访问器、修改器和this 11

1.2.5 静态与非静态 12

1.2.6 完成Die类 13

习题 14

1.3 使用对象 14

1.3.1 Beetle类 14

1.3.2 toString()方法 15

1.3.3 BeetleGame类 19

习题 24

1.4 小结 24

1.5 术语 25

1.6 复习题 26

1.7 项目 27

第2章 多态性 29

2.1 引用类型 29

2.1.1 null 30

2.1.2 引用和相等性 30

2.1.3 多态类型对象 31

2.1.4 基本类型和包装器 33

2.1.5 String 33

2.2.1 声明、分配和初始化 34

2.2 数组 34

习题 34

2.2.2 多维数组 35

2.2.3 示例:Domineering 37

习题 42

2.3 接口 43

习题 47

2.4 重载 47

习题 48

2.5 小结 48

2.6 术语 49

2.8 项目 50

2.7 复习题 50

第3章 继承 53

3.1 扩展类 53

3.1.1 多态性和继承 55

3.1.2 继承链 57

3.1.3 is-a和has-a 58

习题 60

3.2 Object类 61

3.2.1 Object类的方法 61

习题 62

3.2.2 隐式构造函数 62

3.3 包和访问级别 63

访问级别 64

习题 65

3.4 小结 65

3.5 术语 66

3.6 复习题 66

3.7 项目 66

第Ⅱ部分 线性结构 70

第4章 栈和队列 70

4.1 Stack接口 70

4.1.1 泛型 71

4.1.2 示例:Idiot's Delight 72

习题 77

4.2 调用栈 78

习题 80

4.3 异常 80

习题 86

4.4 Queue接口 86

习题 91

4.5 小结 91

4.6 术语 91

4.7 复习题 92

4.8 项目 93

第5章 基于数组的结构 95

5.1 收缩和加长数组 95

5.1.1 Card类 96

5.1.2 收缩数组 97

5.1.3 加长数组 100

习题 101

5.2 实现栈和队列 101

5.2.1 ArrayStack类 101

5.2.2 ArrayQueue类 103

习题 105

5.3 List接口 106

5.3.1 接口 106

5.3.2 ArrayList类 107

习题 110

5.4 迭代器 111

5.4.1 Iterator接口 111

5.4.2 Iterable接口 112

5.4.3 ArrayIterator类 112

5.4.4 示例:Go Fish 114

习题 120

5.5 初识Java集合框架 121

抽象类 121

习题 122

5.6 小结 123

5.7 术语 123

5.8 复习题 123

5.9 项目 124

第6章 链表结构 125

6.1 表节点 125

6.2.1 LinkedStack类 128

6.2 栈和队列 128

习题 128

6.2.2 LinkedQueue类 131

习题 133

6.3 LinkedList类 134

6.3.1 Predecessor接口 136

6.3.2 两指算法 138

6.3.3 ListIterator类 139

习题 140

6.4 再论Java集合框架 141

6.6 术语 142

6.5 小结 142

习题 142

6.7 复习题 143

6.8 项目 143

第Ⅲ部分 算法 146

第7章 算法分析 146

7.1 计时 146

习题 148

7.2 渐近表示法 148

习题 152

7.3 统计步骤数 153

7.4 最好、最坏和平均情况 157

习题 157

习题 158

7.5 平摊分析 159

习题 160

7.6 小结 160

7.7 术语 161

7.8 复习题 161

7.9 项目 162

第8章 查找和排序 163

8.1 线性查找 163

8.2 折半查找 164

习题 164

8.2.1 折半查找分析 165

8.2.2 假定n是2的幂 166

习题 167

8.3 插入排序 167

习题 169

8.4 Comparable接口 170

习题 173

8.5 排序链表 173

习题 174

8.6 小结 174

8.8 复习题 175

8.7 术语 175

8.9 项目 176

第9章 递归 177

9.1 递归地思考 177

习题 183

9.2 分析递归算法 183

习题 186

9.3 归并排序 186

归并排序分析 189

习题 189

9.4 快速排序 190

快速排序分析 192

习题 193

9.5 避免递归 193

9.5.1 尾部递归 194

9.5.2 动态规划 195

习题 197

9.6 小结 197

9.7 术语 198

9.8 复习题 198

9.9 项目 200

10.1 二叉树 202

第Ⅳ部分 树和集合 202

第10章 树 202

10.1.1 有关树的术语 203

10.1.2 实现二叉树 205

习题 208

10.2 树的遍历 210

习题 213

10.3 广义树 213

10.3.1 表示广义树 214

10.3.2 示例:智能的Tic Tac Toe玩家 215

10.5 术语 221

10.4 小结 221

习题 221

10.6 复习题 223

10.7 项目 223

第11章 集合 224

11.1 Set接口 224

习题 229

11.2 有序表 230

11.2.1 查找 232

11.2.2 插入 233

11.2.3 删除 233

11.3 二叉查找树 234

习题 234

11.3.1 查找 235

11.3.2 插入 236

11.3.3 删除 238

习题 241

11.4 散列表 242

11.4.1 直接定址法 242

11.4.2 散列函数和散列码 244

11.4.3 冲突解决方法 245

11.4.4 查找 248

11.4.5 插入 249

11.4.6 删除 250

习题 250

11.5 再论Java集合框架 251

映射 252

习题 252

11.6 小结 253

11.7 术语 253

11.8 复习题 254

11.9 项目 255

12.1 位向量 258

第Ⅴ部分 高级主题 258

第12章 高级线性结构 258

BitSet 264

习题 264

12.2 稀疏数组 265

习题 267

12.3 多维数组的连续表示法 267

习题 271

12.4 高级查找和排序 271

12.4.1 插值查找 271

12.4.3 桶排序 273

12.4.2 比较排序的下界 273

习题 275

12.5 小结 275

12.6 术语 276

12.7 复习题 276

12.8 项目 276

第13章 字符串 277

13.1 String和StringBuilder 277

习题 280

13.2 字符串匹配 280

13.2.1 朴素的字符串匹配 282

13.2.2 RK指纹识别算法 283

13.2.3 KMP跳跃算法 285

习题 289

13.3 小结 289

13.4 术语 290

13.5 复习题 290

13.6 项目 291

第14章 高级主题 292

14.1 堆 292

14.1.1 优先级队列 294

14.1.2 堆排序 296

14.1.3 Java的PrioriryQueue类 297

习题 298

14.2 不相交集合簇 298

14.2.1 按高度合并 300

14.2.2 路径压缩 301

习题 302

14.3 数字查找树 302

习题 308

14.4 红黑树 308

14.4.1 红黑树的性质 308

14.4.3 插入 309

14.4.2 查找 309

14.4.4 删除 311

14.4.5 实现 312

习题 320

14.5 小结 320

14.6 术语 321

14.7 复习题 321

14.8 项目 321

第15章 图 323

15.1 术语 323

15.2 表示法 327

习题 327

习题 332

15.3 图的遍历 332

习题 334

15.4 拓扑排序 335

习题 339

15.5 最短路径 339

15.5.1 Dijkstra的单源点算法 340

15.5.2 Floyd-Warshall所有顶点对算法 341

15.6 最小生成树 342

习题 342

15.7 小结 346

15.8 术语 346

习题 346

15.9 复习题 348

15.10 项目 348

第16章 内存管理 350

16.1 显式内存管理 350

16.1.1 自由表 352

16.1.2 使用节点池 356

16.2.1 引用计数 358

习题 358

16.2 自动内存管理 358

16.2.2 标记和清理无用单元收集 359

16.2.3 复制无用单元收集 359

习题 365

16.3 小结 366

16.4 术语 366

16.5 复习题 367

16.6 项目 367

17.1 与文件交互 368

17.1.1 文本文件 368

第17章 输出到磁盘 368

17.1.2 数据文件 372

习题 376

17.2 压缩 376

17.2.1 霍夫曼编码方式 376

17.2.2 Lempel-Ziv编码方式 381

习题 384

17.3 外部排序 384

习题 389

17.4 B树 389

17.4.2 插入 390

17.4.1 查找 390

17.4.3 删除 391

17.4.4 实现 392

习题 404

17.5 小结 405

17.6 术语 405

17.7 复习题 406

17.8 项目 406

第Ⅵ部分 附录 408

附录A Java知识回顾 408

A.1 第一个程序 408

A.2 变量和类型 410

A.3 循环 412

A.4 与用户交互 414

A.5 分支 414

A.6 方法和中断 417

A.7 常量 418

A.8 运算符 420

A.9 调试 423

A.10 编码约定 424

附录B 统一建模语言 428

B.1 类图 428

B.2 实例图 431

附录C 求和公式 433

C.1 求和符号 433

C.2 常量求和 434

C.3 前n个整数之和 434

C.4 二等分与加倍之和 435

C.5 函数之和的上限 435

C.6 常数因子 436

附录D 进一步的阅读材料 437

D.1 数据结构和算法 437

D.2 Java 437

D.3 游戏 437

相关图书
作者其它书籍
返回顶部