图书介绍
数据结构与抽象 Java版 第3版PDF|Epub|txt|kindle电子书版本网盘下载
- (美)F.M.卡拉诺(Frank M.Carrano) 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121276163
- 出版时间:2016
- 标注页数:614页
- 文件大小:103MB
- 文件页数:634页
- 主题词:数据结构-高等学校-教材;JAVA语言-程序设计-高等学校-教材
PDF下载
下载说明
数据结构与抽象 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