书籍 JAVA面向对象数据结构完全学习教程的封面

JAVA面向对象数据结构完全学习教程PDF电子书下载

(美国)内尔·黛尔,丹尼尔·T.乔伊斯,奇普·威姆斯

购买点数

20

出版社

北京:中国青年出版社

出版时间

2019

ISBN

标注页数

704 页

PDF页数

718 页

图书目录

Chapter 1 知识整理 22

1.1 类、对象和应用程序 22

类 22

统一方法 27

对象 28

应用程序 30

1.2 组织类 32

继承 32

包 39

1.3 异常 42

处理异常状况 42

异常与类:实例 43

1.4 数据结构 47

非独立实现的结构 47

独立实现结构 48

数据结构的含义? 51

1.5 基本结构化机制 51

内存 52

引用 53

数组 57

1.6 算法比较:增长阶分析 63

测算法的时间效率 63

情况复杂度 64

输入值的大小 65

算法比较 66

增长顺序 68

选择排序算法 69

常见的增长阶 72

小结 73

习题 74

Chapter 2 抽象数据类型——栈 87

2.1 抽象 87

信息隐藏 87

数据抽象 88

数据层次 89

前置条件和后置条件 90

Java接口 91

基于接口的多态性 94

2.2 栈 96

栈的操作 97

栈的用法 97

2.3 集合元素 99

常用集合 99

2.4 栈接口 103

异常情况 103

接口 106

应用实例 107

2.5 基于数组的栈实现 109

ArrayBoundedstack类 109

栈操作的定义 111

ArrayListStack类 117

2.6 应用程序:平衡表达式 120

平衡类 120

应用程序 125

软件架构 129

2.7 链表 129

数组与链表 129

LLNode类 131

链表操作 133

2.8 基于链接的栈 139

LinkedStack类 140

压栈操作 142

弹栈操作 145

其他栈操作 147

比较栈的实现方式 149

2.9 应用程序:后缀表达式评估器 150

讨论 150

后缀表达式求值 151

后缀表达式求值算法 152

错误处理 154

PostFixEvaluator类 155

PFixCLI类 157

2.10 栈变体 160

重新审视栈抽象数据类型 160

Java栈类和集合框架 161

小结 163

习题 165

Chapter 3 递归 180

3.1 递归定义、算法和程序 180

递归定义 180

递归计算 181

递归程序 184

阶乘的迭代解决方案 185

3.2 三个问题 185

验证递归算法 186

确定输入限制 187

编写递归方法 187

调试递归方法 188

3.3 数组的递归处理 188

二分查找 188

3.4 链表的递归处理 192

链表的递归性质 192

链表遍历 193

链表转换 196

3.5 塔 200

算法 200

方法 202

程序 204

3.6 分形 204

丁字方形的分形 205

变体 207

3.7 移除递归 208

递归的工作原理 209

尾调用消除 212

直接使用栈 214

3.8 何时使用递归解决方案 215

递归开销 215

低效算法 216

清晰度 218

小结 220

习题 220

Chapter 4 抽象数据类型——队列 236

4.1 队列 236

队列操作 237

使用队列 237

4.2 队列接口 238

应用实例 240

4.3 基于数组的队列实现 241

ArrayBoundedQueue类 241

ArrayUnboundedQueue类 248

4.4 交互式测试驱动程序 251

一般方法 252

ArrayBoundedQueue类的测试驱动 253

使用测试驱动程序 253

4.5 基于链接的队列实现 255

入队操作 256

出队操作 257

循环链表队列设计 259

比较队列实现 260

4.6 应用程序:回文 262

回文类 262

应用程序 264

4.7 队列变体 265

特殊情况 266

玻璃队列 266

双端队列 268

双向链表 270

Java库集合框架队列/双端队列 273

4.8 应用程序:平均等待时间 274

问题讨论和示例 275

Customer类 277

模拟 280

测试 285

4.9 并发、干扰和同步 285

Counter类 287

Java线程 288

干扰 291

同步 292

同步队列 294

并发与Java库集合类 298

小结 299

习题 300

Chapter 5 抽象数据类型——集合 313

5.1 集合接口 313

集合的前提 314

接口 314

5.2 实现基于数组的集合 315

5.3 应用程序:词汇密度 320

5.4 重新探讨比较对象 323

函数equals 323

Comparable接口 329

5.5 基于排序数组的集合的实现 330

参比元素 331

实现 332

以“拷贝”或“引用”的方式实现抽象数据类型 334

示例程序 337

5.6 基于链接的集合的实现 339

内部表示形式 340

运算 340

比较集合实现 344

5.7 集合变体 345

Java集合框架 345

Bag ADT 346

Set ADT 348

小结 351

习题 352

Chapter 6 抽象数据类型——列表 361

6.1 列表接口 361

迭代 361

列表假设 363

接口 363

6.2 列表实现 365

基于数组的实现 365

基于链表的实现 370

6.3 应用程序:纸牌和游戏 375

Card类 376

CardDeck类 378

应用程序:排列Card Hand 380

应用程序:Higher or Lower 383

应用程序:一对牌有多罕见 385

6.4 基于数组的有序列表的实现 388

插入排序 388

不支持的操作 390

Comparator接口 390

构造函数 392

应用实例 393

6.5 列表变体 395

Java库列表 395

链表变体 395

链表作为节点数组 396

6.6 应用程序:大整数 400

大整数 400

内部表示 401

LargeIntList类 402

LargeInt类 407

加法和减法 410

LargeIntCLI程序 418

小结 422

习题 424

Chapter 7 抽象数据类型——二叉搜索树 437

7.1 树 437

树的遍历 440

7.2 二叉搜索树 443

二叉树 443

二叉搜索树 445

二叉树遍历 447

7.3 二叉搜索树接口 449

接口 449

7.4 实现层级:基础级 453

7.5 迭代法VS递归法的实现 457

size函数的递归法 457

size函数的迭代法 460

递归还是迭代 462

7.6 实现层级:剩余的观察函数 462

contains和get函数 462

遍历 465

7.7 实现层级:转换函数 468

add操作 468

remove操作 473

7.8 二叉搜索树的功能 479

重新讨论文本分析实验 479

插入顺序和树形 481

平衡二叉搜索树 482

7.9 应用程序:词频计数器 484

类WordFreq 485

应用程序 486

7.10 树的变体 492

特定应用的变体 492

平衡搜索树 495

小结 498

习题 500

Chapter 8 抽象数据类型——Map 514

8.1 Map接口 514

8.2 Map的实现 520

无序数组 520

有序数组 521

无序链表 521

有序链表 521

二叉搜索树 522

以基于ArrayList的方式实现 522

8.3 应用程序:从字符串到字符串的Map 526

8.4 哈希法 530

冲突 532

8.5 哈希函数 538

数组大小 538

哈希函数 539

Java对哈希的支持 543

复杂度 544

8.6 基于哈希的Map 544

实现 545

使用HMap类 551

8.7 Map的变体 553

混合结构 553

Java对Map的支持 555

小结 556

习题 556

Chapter 9 抽象数据类型——优先级队列 566

9.1 优先级队列接口 566

使用优先级队列 566

接口 567

9.2 优先级队列的实现 568

无序数组 568

有序数组 568

有序链表 569

二叉搜索树 570

9.3 堆 570

9.4 堆的实现 576

二叉树的非链接表示 576

实现堆 578

Enqueue(入队)方法 581

Dequeue(出队)方法 583

应用实例 587

堆VS优先级队列的其他表示 589

小结 590

习题 590

Chapter 10 抽象数据类型——图 598

10.1 图的介绍 598

10.2 图的接口 602

10.3 图的实现 605

基于数组的实现 605

链接实现 610

10.4 应用程序:图的遍历 611

深度优先搜索 612

广度优先搜索 616

10.5 应用程序:单源最短路径问题 619

小结 625

习题 626

Chapter 11 排序和查找算法 635

11.1 排序 635

测试工具 636

11.2 简单排序 638

选择排序 639

冒泡排序 644

插入排序 648

11.3 O(Nlog2N)排序 651

合并排序 652

快速排序 659

堆排序 665

11.4 更多的排序思考 670

测试 671

效率 671

对象和引用 673

比较对象 673

稳定性 674

11.5 查找 675

顺序查找 675

高概率排序 676

有序集合 677

哈希法 677

小结 678

习题 679

附录A 685

附录B 686

附录C 687

附录D 688

术语表 689

索引 696

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包