图书介绍

Java软件结构与数据结构 第3版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

Java软件结构与数据结构 第3版
  • (美)刘易斯,(美)切斯著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302207306
  • 出版时间:2009
  • 标注页数:393页
  • 文件大小:115MB
  • 文件页数:414页
  • 主题词:JAVA语言-程序设计-高等学校-教材-英文;数据结构-高等学校-教材-英文

PDF下载


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

下载说明

Java软件结构与数据结构 第3版PDF格式电子书版下载

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

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

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

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

图书目录

第1章 概述1

1.1 软件质量1

1.1.1 正确性2

1.1.2 可靠性2

1.1.3 健壮性3

1.1.4 可用性3

1.1.5 可维护性3

1.1.6 可重用性4

1.1.7 可移植性4

1.1.8 运行效率4

1.1.9 质量问题5

1.2 数据结构5

1.2.1 一个物理示例5

1.2.2 以集装箱作为对象7

关键概念小结7

自测题8

练习题8

自测题答案8

第2章 算法分析9

2.1 算法效率分析9

2.2 增长函数与大O记法10

2.3 增长函数的比较12

2.4 时间复杂度分析13

2.4.1 循环运行的复杂度分析13

2.4.2 嵌套循环的复杂度分析14

2.4.3 方法调用的复杂度分析15

关键概念小结16

自测题16

练习题17

自测题答案17

参考文献18

第3章 集合19

3.1 概述19

3.1.1 抽象数据类型20

3.1.2 Java集合API21

3.2 栈集合22

3.3 主要的面向对象概念23

3.3.1 继承24

3.3.2 类层次25

3.3.3 Object类26

3.3.4 多态性27

3.3.5 引用与类层次28

3.3.6 泛型29

3.4 栈ADT30

接口30

3.5 使用栈计算后缀表达式32

3.6 异常38

3.6.1 异常消息39

3.6.2 try语句39

3.6.3 异常传播40

3.7 用数组实现栈41

管理容量41

3.8 ArrayStack类42

3.8.1 构造函数43

3.8.2 push操作44

3.8.3 pop操作45

3.8.4 peek操作46

3.8.5 其他操作46

关键概念小结46

自测题47

练习题48

程序设计项目48

自测题答案49

第4章 链式结构51

4.1 链接作为引用51

4.2 管理链表53

4.2.1 访问元素53

4.2.2 插入结点54

4.2.3 删除结点55

4.2.4 哑结点55

4.3 无链接的元素56

双向链表56

4.4 用链表实现栈57

4.4.1 LinkedStack类57

4.4.2 push操作60

4.4.3 pop操作61

4.4.4 其他操作62

4.5 使用栈来穿越迷宫62

4.6 java.util.Stack类实现栈67

4.6.1 独有的操作68

4.6.2 继承与实现68

关键概念小结69

自测题69

练习题69

程序设计项目70

自测题答案70

第5章 队列72

5.1 概述72

5.2 使用队列:代码密钥75

5.3 使用队列:售票口模拟77

5.4 用链表实现队列81

5.4.1 enqueue操作83

5.4.2 dequeue操作84

5.4.3 其他操作85

5.5 用数组实现队列85

5.5.1 enqueue操作88

5.5.2 dequeue操作90

5.5.3 其他操作90

关键概念小结90

自测题91

练习题91

程序设计项目92

自测题答案92

第6章 列表94

6.1 概述94

6.1.1 迭代器96

6.1.2 往列表添加元素97

6.1.3 接口与多态性98

6.2 有序列表使用示例:联赛主办者104

6.3 索引列表使用示例:Josephus问题109

6.4 使用数组实现列表111

6.4.1 remove操作112

6.4.2 contains操作114

6.4.3 iterator操作115

6.4.4 有序列表的add操作117

6.4.5 无序列表的特有操作118

6.4.6 无序列表的addAfter操作118

6.5 使用链表实现列表119

6.5.1 remove操作119

6.5.2 双向链表121

6.5.3 iterator操作124

6.6 Java集合API中的列表126

6.6.1 Cloneable接口126

6.6.2 Serializable接口127

6.6.3 RandomAccess接口127

6.6.4 java.util.Vector接口127

6.6.5 java.util.ArrayList接口129

6.6.6 java.util.LinkedList接口130

关键概念小结132

自测题133

练习题133

程序设计项目134

自测题答案134

第7章 递归136

7.1 递归地思考136

7.1.1 无穷递归137

7.1.2 数学中的递归138

7.2 递归地编程138

7.2.1 递归与迭代140

7.2.2 直接递归与间接递归140

7.3 使用递归141

7.3.1 穿越迷宫141

7.3.2 汉诺塔145

7.4 递归算法分析149

关键概念小结150

自测题151

练习题151

程序设计项目152

自测题答案153

第8章 排序与查找154

8.1 查找154

8.1.1 静态方法155

8.1.2 泛型方法155

8.1.3 线性查找法156

8.1.4 二分查找法157

8.1.5 查找算法的比较159

8.2 排序160

8.2.1 选择排序法162

8.2.2 插入排序法164

8.2.3 冒泡排序法165

8.2.4 快速排序法167

8.2.5 归并排序法170

8.3 基数排序法171

关键概念小结175

自测题176

练习题176

程序设计项目177

自测题答案177

第9章 树178

9.1 概述178

树的分类179

9.2 实现树的策略180

9.2.1 树的数组实现之计算策略180

9.2.2 树的数组实现之模拟链接策略181

9.2.3 树的分析182

9.3 树的遍历182

9.3.1 前序遍历183

9.3.2 中序遍历183

9.3.3 后序遍历184

9.3.4 层序遍历184

9.4 二叉树185

9.5 使用二叉树:表达式树188

9.6 用链表实现二叉树197

9.6.1 find方法199

9.6.2 iteratorInOrder方法201

9.7 用数组实现二叉树202

9.7.1 find方法203

9.7.2 iteratorInOrder方法204

关键概念小结205

自测题205

练习题206

程序设计项目206

自测题答案206

第10章 二叉查找树208

10.1 概述208

10.2 用链表实现二叉查找树211

10.2.1 addElement操作211

10.2.2 removeElement操作213

10.2.3 removeAllOccurrences操作216

10.2.4 removeMin操作217

10.3 用数组实现二叉查找树218

10.3.1 addElement操作219

10.3.2 removeElement操作221

10.3.3 replace操作223

10.3.4 removeAllOccurrences操作227

10.3.5 removeMin操作227

10.4 用有序列表实现二叉查找树228

BinarySearchTreeList实现的分析231

10.5 平衡二叉查找树232

10.5.1 右旋233

10.5.2 左旋233

10.5.3 右左旋234

10.5.4 左右旋234

10.6 实现二叉查找树:AVL树235

10.6.1 AVL树的右旋235

10.6.2 AVL树的左旋236

10.6.3 AVL树的右左旋236

10.6.4 AVL树的左右旋236

10.7 实现二叉查找树:红黑树237

10.7.1 红黑树中的元素插入237

10.7.2 红黑树中的元素删除239

10.8 实现二叉查找树:Java集合API241

关键概念小结243

自测题244

练习题245

程序设计项目245

自测题答案246

参考文献247

第11章 优先队列与堆248

11.1 堆248

11.1.1 addElement操作250

11.1.2 removeMin操作251

11.1.3 findMin操作252

11.2 使用堆:优先级队列252

11.3 用链表实现堆256

11.3.1 addElement操作257

11.3.2 removeMin操作259

11.3.3 findMin操作261

11.4 用数组实现堆261

11.4.1 addElement操作262

11.4.2 removeMin操作263

11.4.3 findMin操作265

11.5 使用堆:堆排序265

关键概念小结266

自测题267

练习题267

程序设计项目268

自测题答案268

第12章 多路查找树270

12.1 整合树的概念270

12.2 2-3树270

12.2.1 往2-3树中插入元素271

12.2.2 从2-3树中删除元素273

12.3 2-4树275

12.4 B树276

12.4.1 B*树277

12.4.2 B+树277

12.4.3 B树的分析278

12.5 B树的实现策略278

关键概念小结279

自测题279

练习题279

程序设计项目280

自测题答案280

参考文献281

第13章 图282

13.1 无向图282

13.2 有向图284

13.3 网络285

13.4 常用的图算法286

13.4.1 遍历286

13.4.2 测试连通性289

13.4.3 最小生成树290

13.4.4 判定最短路径293

13.5 图的实现策略293

13.5.1 邻接列表293

13.5.2 邻接矩阵294

13.6 用邻接矩阵实现无向图295

13.6.1 addEdge方法298

13.6.2 addVertex方法299

13.6.3 expandCapacity方法300

13.6.4 其他方法300

关键概念小结300

自测题301

练习题301

程序设计项目302

自测题答案302

参考文献303

第14章 散列304

14.1 概述304

14.2 散列函数305

14.2.1 余数法306

14.2.2 折叠法306

14.2.3 平方取中法307

14.2.4 基数转换法307

14.2.5 数字分析法307

14.2.6 长度相关法307

14.2.7 Java语言中的散列函数308

14.3 解决冲突308

14.3.1 链地址法308

14.3.2 开放地址法310

14.4 从散列表删除元素312

14.4.1 从链地址实现中删除312

14.4.2 从开放地址实现中删除312

14.5 Java集合API中的散列表313

14.5.1 Hashtable类313

14.5.2 HashSet类314

14.5.3 HashMap类315

14.5.4 IdentityHashMap类316

14.5.5 WeakHashMap类317

14.5.6 LinkedHashSet与LinkedHashMap318

关键概念小结319

自测题319

练习题320

程序设计项目320

自测题答案321

第15章 Set与Map集合323

15.1 Set集合323

15.2 使用Set:bingo程序326

15.3 用数组实现Set329

15.3.1 add操作330

15.3.2 addAll操作332

15.3.3 removeRandom操作332

15.3.4 remove操作333

15.3.5 union操作334

15.3.6 contains操作335

15.3.7 equals操作336

15.3.8 其他操作337

15.3.9 UML描述337

15.4 用链表实现Set338

15.4.1 add操作338

15.4.2 removeRandom操作339

15.4.3 remove操作340

15.4.4 其他操作341

15.5 Map集合与Java集合API341

关键概念小结342

自测题343

练习题343

程序设计项目343

自测题答案344

附录A UML346

A.1 统一建模语言346

A.2 UML类图346

A.3 UML关系347

关键概念小结349

自测题350

练习题350

自测题答案350

附录B 面向对象设计351

B.1 概述351

B.2 使用对象351

B.2.1 抽象352

B.2.2 创建对象353

B.3 类库与包354

import声明355

B.4 状态与行为355

B.5 类356

实例数据359

B.6 封装359

B.6.1 可见性修饰符360

B.6.2 局部数据361

B.7 构造函数361

B.8 方法重载362

B.9 再谈引用363

B.9.1 空引用363

B.9.2 this引用364

B.9.3 别名365

B.9.4 垃圾回收367

B.9.5 将对象作为参数传递367

B.10 static修饰符368

B.10.1 静态变量368

B.10.2 静态方法369

B.11 包装类369

B.12 接口370

B.12.1 Comparable接口371

B.12.2 Iterator接口372

B.13 继承372

B.13.1 派生类373

B.13.2 protected修饰符375

B.13.3 super引用375

B.13.4 重载方法376

B.14 类的层次结构376

B.14.1 Obiect类377

B.14.2 抽象类378

B.14.3 接口的层次结构379

B.15 多态性379

B.15.1 引用和类的层次结构380

B.15.2 基于继承的多态性381

B.15.3 基于接口的多态性382

B.16 泛型384

B.17 异常385

B.17.1 异常消息385

B.17.2 try语句386

B.17.3 异常传播387

B.17.4 异常类的层次结构387

关键概念小结388

自测题390

练习题390

程序设计项目391

自测题答案392

热门推荐