图书介绍

数据结构:从应用到实现 JAVA版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

数据结构:从应用到实现 JAVA版
  • (美)SESH VENUGOPAL著;冯速 张青 冯丁妮等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111231141
  • 出版时间:2008
  • 标注页数:341页
  • 文件大小:28MB
  • 文件页数:355页
  • 主题词:数据结构-高等学校-教材;JAVA语言-程序设计-高等学校-教材

PDF下载


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

下载说明

数据结构:从应用到实现 JAVA版PDF格式电子书版下载

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

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

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

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

图书目录

第1章 Java面向对象的程序设计1

1.1 对象与封装1

1.1.1 对象1

1.1.2 生存期、状态和消息2

1.1.3 对象的客户2

1.1.4 接口与实现的分离2

1.2 类2

1.2.1 状态与行为3

1.2.2 方法重载4

1.2.3 对象创建、构造器及垃圾回收4

1.2.4 方法调用7

1.2.5 静态域和静态方法7

1.2.6 对象引用9

1.3 继承9

1.3.1 超类与子类9

1.3.2 继承域与特化域11

1.3.3 构造器11

1.3.4 创建对象12

1.3.5 继承方法和特化方法12

1.3.6 方法覆盖13

1.4 类Object13

1.4.1 方法equals14

1.4.2 方法toString15

1.4.3 方法clone15

1.5 异常16

1.5.1 异常消息的解释16

1.5.2 特有的错误处理18

1.5.3 抛出异常22

1.5.4 捕获异常23

1.5.5 异常类27

1.6 输入与输出28

1.6.1 终端驱动IO28

1.6.2 基于文件的输入与输出29

1.6.3 字符串分解32

1.6.4 编写异常类33

1.7 类包34

1.7.1 Java包34

1.7.2 组建包35

1.7.3 名字冲突解析38

1.8 访问控制39

1.8.1 私有访问39

1.8.2 包访问39

1.8.3 受保护访问39

1.8.4 公有访问40

1.8.5 一个例子40

1.9 多态性40

1.9.1 多态引用41

1.9.2 提升类层次42

1.9.3 降低类层次42

1.9.4 instanceof操作符43

1.10 抽象类44

1.10.1 抽象类Shape44

1.10.2 抽象类的性质44

1.11 游乐园的例子45

1.12 接口47

1.12.1 Java接口结构47

1.12.2 实现接口47

1.12.3 接口作为类型48

1.12.4 对接口的需求48

1.12.5 扩展接口49

1.13 通用性49

1.13.1 把java.util.ArrayList用于集合50

1.13.2 java.util.ArrayList的公有接口51

1.13.3 通用类的实现52

1.13.4 通用接口的实现52

1.13.5 静态模板方法54

1.14 总结56

1.15 练习58

1.16 程序设计问题59

第2章 数据结构概观62

2.1 什么是数据结构62

2.2 我们学习什么数据结构62

2.3 什么是抽象数据类型64

2.4 OOP和Java在数据结构有什么优势65

2.5 如何选择正确的数据结构67

第3章 算法的效率69

3.1 多项式的算术运算:一个具体例子69

3.2 基本操作70

3.3 输入规模72

3.4 函数的渐近增长72

3.5 阶与大073

3.5.1 典型运行时间的阶75

3.5.2 多变元的阶77

3.5.3 阶的相对顺序77

3.5.4 阶的算术运算78

3.6 最坏情况与平均情况78

3.7 总结80

3.8 练习81

第4章 无序列表84

4.1 无序列表的性质84

4.2 顺序搜索85

4.2.1 平均情况分析86

4.2.2 基于搜索模式的数据重排列87

4.3 类List88

4.4 使用List的类ExpenseList89

4.4.1 类Expense的接口89

4.4.2 类Expense90

4.4.3 类ExpenseList的接口91

4.4.4 类ExpenseList的实现92

4.4.5 对象的相等与搜索94

4.5 链表96

4.5.1 节点的定义97

4.5.2 插入操作98

4.5.3 删除操作99

4.5.4 访问操作100

4.5.5 循环链表100

4.6 类LinkedList102

4.7 类List的实现106

4.8 总结107

4.9 练习108

4.10 程序设计问题109

第5章 有序列表112

5.1 介绍112

5.2 二分搜索113

5.2.1 分成两半113

5.2.2 算法114

5.3 排序:接口java.lang.Comparable115

5.4 类OrderedList117

5.5 合并有序列表119

5.6 使用OrderedList的列表归并123

5.6.1 Merger:一个实用类123

5.6.2 归并类125

5.7 类OrderedList的实现126

5.8 总结128

5.9 练习129

5.10 程序设计问题131

第6章 队列133

6.1 队列的性质133

6.2 UNIX打印队列134

6.3 类Queue135

6.4 使用Queue的类PrintQueue136

6.5 类Queue的实现139

6.5.1 设计1:使用基于数组的存储139

6.5.2 设计2:使用LinkedList141

6.6 总结142

6.7 练习143

6.8 程序设计问题144

第7章 栈146

7.1 栈的性质146

7.2 栈的应用147

7.2.1 括号匹配147

7.2.2 后缀表达式求值147

7.2.3 中缀表达式到后缀表达式的转换149

7.3 类Stack149

7.4 后缀表达式求值包150

7.4.1 类PostfixEvaluator150

7.4.2 类StatusKeeper152

7.4.3 类StackKeeper152

7.4.4 类PostfixEvaluator的实现154

7.5 类Stack的实现155

7.5.1 设计1:使用数组列表进行存储156

7.5.2 设计2:使用链表进行存储156

7.6 总结157

7.7 练习157

7.8 程序设计问题159

第8章 递归161

8.1 递归定义161

8.1.1 列表161

8.1.2 有序列表162

8.1.3 阶乘函数163

8.1.4 斐波那契数列163

8.2 递归程序与退回164

8.2.1 计算阶乘164

8.2.2 计算斐波那契数列166

8.2.3 关于链表的递归166

8.3 对数组的递归:二分搜索168

8.4 汉诺塔:一个应用168

8.4.1 递归定义169

8.4.2 递归程序170

8.5 递归与栈171

8.6 递归的缺点171

8.7 尾递归172

8.8 总结174

8.9 练习174

8.10 程序设计问题175

第9章 二叉树和普通树178

9.1 二叉树的性质178

9.1.1 组件178

9.1.2 节点位置代表的意义179

9.1.3 结构180

9.1.4 递归定义181

9.2 二叉树的遍历182

9.3 类BinaryTree184

9.4 二叉树的存储与重构186

9.4.1 二叉树的署名187

9.4.2 从二叉树的署名构建二叉树188

9.5 赫夫曼编码190

9.5.1 统计编码与字典编码190

9.5.2 算法190

9.5.3 平均代码长度和前缀性质191

9.5.4 使用BinaryTree的类Huffman192

9.6 类BinaryTree的实现196

9.7 基于栈的遍历198

9.7.1 二叉树的中序遍历198

9.7.2 类Visitor200

9.8 普通树200

9.8.1 例子:大学中的组织层次200

9.8.2 例子:UNIX文件系统200

9.8.3 实现中的空间问题201

9.8.4 与二叉树的对应关系202

9.8.5 普通树的署名203

9.9 总结204

9.10 练习205

9.11 程序设计问题207

第10章 二叉查找树和AVL树210

10.1 比较树210

10.1.1 使用比较树的搜索时间211

10.1.2 比较树的高度212

10.2 二叉查找树的性质213

10.3 二叉查找树的操作214

10.3.1 搜索操作214

10.3.2 插入操作215

10.3.3 删除操作215

10.4 类BinarySearchTree217

10.5 使用类BinarySearchTree218

10.5.1 例子:树排序218

10.5.2 例子:计数关键字219

10.6 类BinarySearchTree的实现220

10.6.1 搜索操作的实现220

10.6.2 插入操作的实现220

10.6.3 删除操作的实现221

10.6.4 便利方法与遍历223

10.7 AVL树223

10.7.1 AVL树结构224

10.7.2 搜索、插入和删除操作概述225

10.7.3 旋转操作225

10.7.4 插入操作226

10.7.5 删除操作227

10.7.6 AVL树操作的运行时间231

10.7.7 AVL插入和删除:一般化231

10.8 二分搜索:平均比较次数234

10.9 总结236

10.10 练习236

10.11 程序设计问题239

第11章 堆241

11.1 作为优先队列的堆241

11.2 堆的性质242

11.3 堆的操作242

11.3.1 插入操作243

11.3.2 删除操作243

11.3.3 运行时间分析244

11.4 类Heap244

11.5 使用堆的优先调度245

11.5.1 纵览245

11.5.2 使用堆的调度包246

11.6 使用类Heap的排序250

11.7 类Heap的实现251

11.7.1 数组存储251

11.7.2 使用ArrayList的实现253

11.8 可更新堆254

11.8.1 设计一个可更新堆254

11.8.2 堆项的句柄255

11.8.3 共享句柄数组255

11.8.4 在堆中封装句柄255

11.8.5 循环使用空闲句柄空间256

11.9 总结256

11.10 练习257

11.11 程序设计问题258

第12章 散列表260

12.1 动机260

12.2 散列261

12.3 冲突解决方案262

12.3.1 线性探查法262

12.3.2 二次探查法263

12.3.3 链表法264

12.3.4 运行时间比较265

12.4 类java.util.HashMap265

12.4.1 表和负载因子266

12.4.2 项的存储267

12.4.3 添加项267

12.4.4 再散列过程269

12.4.5 搜索操作270

12.5 二次探查法:探查位置的重复270

12.6 总结271

12.7 练习271

12.8 程序设计问题272

第13章 排序273

13.1 插入排序273

13.2 用分治法排序275

13.2.1 快速排序276

13.2.2 归并排序280

13.3 堆排序281

13.3.1 以线性时间构建堆281

13.3.2 排序堆283

13.4 基数排序283

13.5 实现:类Quicksort285

13.6 构建堆:线性运行时间287

13.7 总结288

13.8 练习288

13.9 程序设计问题290

第14章 图I:算法292

14.1 使用图模拟关系292

14.1.1 无向图292

14.1.2 有向图293

14.1.3 加权图295

14.2 图的表示295

14.3 图的遍历297

14.3.1 无向图的深度优先搜索297

14.3.2 无向图的广度优先搜索298

14.3.3 遍历驱动器299

14.3.4 有向图的遍历300

14.4 有向图的拓扑排序301

14.4.1 偏序和全序301

14.4.2 拓扑编号302

14.4.3 使用深度优先搜索的拓扑排序302

14.4.4 使用广度优先搜索的拓扑排序304

14.5 无向图的连通分支305

14.6 加权有向图中的最短路径306

14.7 总结311

14.8 练习311

第15章 图Ⅱ:实现314

15.1 有向图类:DirGraph314

15.1.1 顶点编号315

15.1.2 类Neighbor316

15.1.3 运用类DirGraph317

15.2 无向图类:UndirGraph317

15.3 深度优先搜索类:DFS319

15.3.1 设计与接口319

15.3.2 类Visitor320

15.3.3 DFS的实现321

15.4 拓扑排序类:DFSTopsort322

15.4.1 TopVisitor:扩展类Visitor322

15.4.2 DFSTopsort的实现322

15.5 连通分支类:DFSConncomp323

15.5.1 ConnVisitor:扩展类Visitor323

15.5.2 DFSConncomp的实现324

15.6 最短路径类:ShortestPaths324

15.6.1 WeightedNeighbor:扩展类Neighbor325

15.6.2 ShortestPaths的实现325

15.7 图的实现328

15.7.1 DirGraph的实现328

15.7.2 类UndirGraph的实现331

15.7.3 加权图的实现331

15.8 总结332

15.9 程序设计问题332

索引335

热门推荐