数据结构Java第四版pdf_数据结构与抽象 Java语言描述 第4版 PDF 下载

Data Structures and Abstractions with Java, Fourth Edition

出版者的话

译者序

前言

引言 组织数据 1

序言 设计类 3

P.1 封装 3

P.2 说明方法 5

P.2.1 注释 5

P.2.2 前置条件和后置条件 5

P.2.3 断言 6

P.3 Java接口 7

P.3.1 写一个接口 8

P.3.2 实现一个接口 9

P.3.3 接口作为数据类型 11

P.3.4 派生一个接口 12

P.3.5 接口内命名常量 13

P.4 选择类 14

P.4.1 标识类 15

P.4.2 CRC卡 15

P.4.3 统一建模语言 16

P.5 重用类 17

第1章 包 22

1.1 什么是包 22

1.2 说明一个包 23

1.3 使用ADT包 30

1.4 像使用自动贩卖机一样使用ADT 33

1.5 ADT集合 34

1.6 Java类库:接口Set 35

Java插曲1 泛型 39

第2章 使用数组实现包 43

2.1 使用固定大小的数组实现ADT包 43

2.1.1 类比 43

2.1.2 一组核心方法 44

2.1.3 实现核心方法 45

2.1.4 让实现安全 51

2.1.5 测试核心方法 54

2.1.6 实现更多的方法 56

2.1.7 删除项的方法 58

2.2 使用可变大小的数组实现ADT包 65

2.2.1 可变大小数组 65

2.2.2 包的新实现 68

2.3 使用数组实现ADT包的优缺点 70

Java插曲2 异常 75

第3章 使用链式数据实现包 82

3.1 链式数据 82

3.2 ADT包的链式实现 84

3.2.1 私有类Node 84

3.2.2 类LinkedBag的框架 85

3.2.3 定义一些核心方法 86

3.2.4 测试核心方法 89

3.2.5 方法getFrequencyOf 90

3.2.6 方法contains 91

3.3 从链中删除一项 92

3.4 有设置和获取方法的类Node 96

3.5 使用链实现ADT包的优缺点 98

第4章 算法的效率 102

4.1 动机 102

4.2 测量算法的效率 103

4.2.1 计数基本操作 105

4.2.2 最优、最差和平均情形 106

4.3 大O表示 107

4.4 描述效率 110

4.5 实现ADT包的效率 113

4.5.1 基于数组的实现 113

4.5.2 链式实现 114

4.5.3 两种实现的比较 115

第5章 栈 121

5.1 ADT栈的规格说明 121

5.2 使用栈来处理代数表达式 125

5.2.1 问题求解:检查中缀代数表达式中平衡的分隔符 125

5.2.2 问题求解:将中缀代数表达式转换为后缀表达式 129

5.2.3 问题求解:计算后缀表达式的值 133

5.2.4 问题求解:计算中缀表达式的值 134

5.3 程序栈 136

5.4 Java类库:类Stack 137

第6章 栈的实现 142

6.1 链式实现 142

6.2 基于数组的实现 144

6.3 基于向量的实现 148

6.3.1 Java类库:类Vector 148

6.3.2 使用向量实现ADT栈 149

第7章 递归 154

7.1 什么是递归 154

7.2 跟踪递归方法 158

7.3 返回一个值的递归方法 160

7.4 递归处理数组 162

7.5 递归处理链 165

7.6 递归方法的时间效率 166

7.6.1 countDown的时间效率 166

7.6.2 计算xn的时间效率 167

7.7 困难问题的简单求解方案 168

7.8 简单问题的低劣求解方案 172

7.9 尾递归 174

7.10 间接递归 176

7.11 使用栈来替代递归 177

Java插曲3 再谈泛型 185

第8章 排序简介 194

8.1 对数组进行排序的Java方法的组织 194

8.2 选择排序 195

8.2.1 迭代选择排序 196

8.2.2 递归选择排序 198

8.2.3 选择排序的效率 198

8.3 插入排序 199

8.3.1 迭代插入排序 199

8.3.2 递归插入排序 201

8.3.3 插入排序的效率 202

8.3.4 链式结点链的插入排序 203

8.4 希尔排序 205

8.4.1 算法 206

8.4.2 希尔排序的效率 207

8.5 算法比较 208

第9章 更快的排序方法 213

9.1 归并排序 213

9.1.1 归并数组 213

9.1.2 递归归并排序 214

9.1.3 归并排序的效率 216

9.1.4 迭代归并排序 217

9.1.5 Java类库中的归并排序 218

9.2 快速排序 218

9.2.1 快速排序的效率 219

9.2.2 创建划分 219

9.2.3 实现快速排序 221

9.2.4 Java类库中的快速排序 223

9.3 基数排序 223

9.3.1 基数排序的伪代码 225

9.3.2 基数排序的效率 225

9.4 算法比较 226

Java插曲4 再谈异常 231

第10章 队列、双端队列和优先队列 238

10.1 ADT队列 238

10.1.1 问题求解:模拟排队 241

10.1.2 问题求解:计算出售股票的资本收益 246

10.1.3 Java类库:接口Queue 248

10.2 ADT双端队列 249

10.2.1 问题求解:计算出售股票的资本收益 251

10.2.2 Java类库:接口Deque 252

10.2.3 Java类库:类ArrayDeque 253

10.3 ADT优先队列 254

10.3.1 问题求解:跟踪任务分配 255

10.3.2 Java类库:类PriorityQueue 257

第11章 队列、双端队列和优先队列的实现 262

11.1 队列的链式实现 262

11.2 基于数组实现队列 265

11.2.1 循环数组 266

11.2.2 带一个不用位置的循环数组 267

11.3 队列的循环链式实现 272

11.4 Java类库:类AbstractQueue 277

11.5 双端队列的双向链式实现 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值