图书介绍

数据结构与抽象 Java版 第3版PDF|Epub|txt|kindle电子书版本网盘下载

数据结构与抽象 Java版 第3版
  • (美)F.M.卡拉诺(Frank M.Carrano) 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121276163
  • 出版时间:2016
  • 标注页数:614页
  • 文件大小:103MB
  • 文件页数:634页
  • 主题词:数据结构-高等学校-教材;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

袋子的行为2

袋子的规格说明3

接口7

ADT袋子的使用9

像使用自动售货机一样使用ADT12

Java类库:接口Set14

第2章 使用数组实现袋子19

使用固定大小的数组实现ADT袋子19

一个类比19

一组核心方法20

核心方法的实现21

核心方法的测试27

更多方法的实现30

删除物品的方法31

使用可变大小的数组实现ADT袋子38

调整数组的大小38

袋子的一种新的实现41

使用数组实现ADT袋子的优缺点43

第3章 使用链表实现袋子48

链表48

通过添加节点到表头来创建链表49

ADT袋子的链表实现50

私有的类Node51

类LinkedBag的概要52

一些核心方法的定义53

核心方法的测试56

方法getFrequencyOf57

方法contains58

从链表中删除物品58

方法remove和clear59

具有方法set和get的类Node62

使用链表实现ADT袋子的优缺点64

第4章 算法的效率69

动机69

算法效率的度量70

基本操作次数的统计72

最好、最坏和平均情况74

大O表示法74

程序结构的复杂度77

效率的图形化表示78

ADT袋子不同实现的效率80

基于数组的实现80

基于链表的实现82

两种实现方法的比较83

第5章 栈89

ADT栈的规格说明89

利用栈处理代数表达式92

应用问题:中缀代数表达式中括号平衡的检查93

应用问题:中缀表达式向后缀表达式的转换97

应用问题:后缀表达式的求值101

应用问题:中缀表达式的求值102

程序栈104

Java类库:类Stack105

第6章 栈的实现111

基于链表的实现111

基于数组的实现114

基于向量的实现117

Java类库:Vector类117

使用向量实现ADT栈118

第7章 递归123

什么是递归123

跟踪一个递归方法127

有返回值的递归方法130

递归地处理一个数组132

递归地处理一个链表134

递归方法的时间效率135

countDown的时间效率135

计算xn的时间效率137

一个复杂问题的简单解决方案138

一个简单问题的拙劣解决方案142

尾递归144

间接递归146

使用栈代替递归146

第8章 排序引论156

组织Java对数组排序的方法157

选择排序158

迭代选择排序159

递归选择排序160

选择排序的效率161

插入排序161

迭代插入排序162

递归插入排序163

插入排序的效率165

链表的插入排序165

希尔排序167

Java代码169

希尔排序的效率170

算法比较170

第9章 快速排序方法176

归并排序176

数组的归并176

递归的归并排序177

归并排序的效率179

迭代的归并排序181

Java类库中的归并排序181

快速排序182

快速排序的效率182

创建划分183

快速排序的Java代码185

Java类库中的快速排序187

基数排序188

基数排序的伪代码189

基数排序的效率189

算法比较190

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

ADT队列195

解决问题:模拟排队198

解决问题:计算出售股票时的资本增益(一)203

Java类库:接口Queue206

ADT双端队列207

解决问题:计算出售股票时的资本增益(二)209

Java类库:接口Deque209

Java类库:ArrayDeque类211

ADT优先队列211

解决问题:跟踪你的作业212

Java类库:类PriorityQueue214

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

基于链表队列的实现219

基于数组队列的实现222

循环数组223

有一个未使用存储单元的循环数组224

基于向量队列的实现229

基于循环链表队列的实现231

由两部分构成的循环链表231

Java类库:类AbstractQueue236

基于双向链表双端队列的实现236

实现优先队列的可用方法240

第12章 线性表245

ADT线性表的规格说明245

使用ADT线性表250

Java类库:List接口253

Jave类库:ArraryList类253

第13章 用数组实现线性表257

用数组实现ADT线性表257

一个类比257

Java实现259

用数组实现ADT线性表的效率264

用Vector实现ADT线性表266

第14章 用链表实现线性表272

操作链表节点272

在多种位置加入节点272

在多种位置删除节点276

私有方法getNodeAt276

开始实现277

数据域和构造函数278

在列表结尾加入279

在列表给定位置加入280

方法isEmpty和toArray281

测试核心方法283

继续实现284

一个更好的实现286

尾引用286

用链表实现ADT列表的效率289

Java类库:类 LinkedList291

第15章 迭代器296

迭代器是什么296

Iterator接口297

使用Iterator接口298

独立类迭代器302

内部类迭代器305

基于链表实现305

基于数组实现309

为什么迭代器方法在它们自己的类中311

ListIterator接口313

使用ListIterator接口315

ListIterator接口基于数组的实现318

内部类319

Java类库:Iterable接口323

lterable和for-each循环324

修改版接口List324

第16章 有序表330

ADT有序表的规格说明330

使用ADT有序表332

链表实现333

方法add334

链表实现的效率340

使用ADT线性表的实现340

效率问题343

第17章 继承及线性表348

使用继承实现有序表348

设计一个基类350

创建一个抽象基类354

有序表的一种高效实现355

方法add356

第18章 查找359

问题引入359

查找无序数组360

无序数组的迭代式顺序查找360

无序数组的递归式顺序查找361

顺序查找数组的效率362

查找有序数组362

有序数组的顺序查找363

有序数组的二分查找363

Java类库:方法binarySearch367

二分查找数组的效率367

查找无序链表368

无序链表的迭代式顺序查找369

无序链表的递归式顺序查找369

顺序查找链表的效率370

查找有序链表370

有序链表的顺序查找370

二分查找有序链表371

查找方法的选择371

第19章 词典377

ADT词典规格说明377

Java接口380

迭代器381

使用ADT词典382

问题解决:电话号码本382

问题解决:词频386

问题解决:词的索引389

Java类库:Map接口392

第20章 词典的实现396

基于数组的实现396

一个无序数组词典397

一个有序数组词典401

基于向量的实例404

链式实例408

一个无序链式词典409

一个有序链式词典409

第21章 散列概述415

散列是什么415

散列函数417

计算散列码418

将散列码压缩成散列表的索引420

处理冲突421

用线性探测实现开放定址421

用二次探测实现开放定址424

用双重散列实现开放定址425

开放定址的潜在问题426

链地址427

第22章 用散列实现词典433

散列的效率433

容载分析434

开放定址消耗分析434

链地址消耗分析435

再散列436

不同冲突解决方案的对比437

用散列实现词典的实例438

散列表中的条目438

数据域和构造函数439

getValue,remove和add方法440

迭代器445

Java类库:HashMap类446

Java类库:HashSet类446

第23章 树450

树的概念450

层次化的数据组织450

树的术语452

树的遍历455

遍历二叉树456

一般树的遍历457

树的Java接口458

树的通用接口458

二叉树的接口459

二叉树的例子460

表达式树460

决策树461

二叉查找树464

堆466

一般树的例子468

语法分析树468

游戏树469

第24章 树的实现476

二叉树的节点476

节点的接口477

二叉树节点的实现478

ADT二叉树的实现479

创建基本二叉树479

privateSetTree方法480

访问器与更改器方法482

计算高度和节点数483

遍历484

表达式树的实现488

一般树489

一般树的节点489

用二叉树表示一般树490

第25章 二叉查找树的实现495

开始495

二叉查找树接口496

重复的条目498

开始类定义498

查找和检索500

遍历501

添加条目501

递归实现502

迭代实现505

删除条目506

删除一个叶子节点的条目506

删除节点有一个孩子的条目507

删除节点有两个孩子的条目507

删除为根的条目510

递归实现510

迭代实现513

操作的效率516

平衡的重要性517

节点添加的顺序517

ADT词典实现518

第26章 堆的实现528

再论ADT堆528

用数组表/示堆528

插入条目530

删除根533

创建堆535

堆排序537

第27章 平衡查找树545

AVL树545

单旋转546

双旋转548

实现细节551

2-3树554

查找2-3树555

添加条目至2-3树556

添加时分裂节点557

2-4树558

添加条目至2-3树558

比较AVL,2-3和2-4树560

红黑树561

红黑树的性质562

添加条目到红黑树562

Java类库:TreeMap类567

B树567

第28章 图573

一些示例和术语573

公路线路图573

航空线路图575

迷宫576

树577

遍历577

广度优先遍历578

深度优先遍历579

拓扑排序580

路径583

寻找路径583

无权图的最短路径算法583

加权图中的最短路径585

ADT图的Java接口588

第29章 图的实现597

两种实现的概述597

邻接矩阵597

邻接表598

顶点和边599

类Vertex的规格说明599

内部类Edge601

实现Vertex类602

ADT图的实现605

基本操作605

图算法608

热门推荐