图书介绍
Java数据结构PDF|Epub|txt|kindle电子书版本网盘下载
![Java数据结构](https://www.shukui.net/cover/73/33157579.jpg)
- Thomas A.Standish著;刘颖,朱剑平等译 著
- 出版社: 北京:清华大学出版社
- ISBN:7302091161
- 出版时间:2004
- 标注页数:491页
- 文件大小:46MB
- 文件页数:513页
- 主题词:JAVA语言-程序设计;数据结构
PDF下载
下载说明
Java数据结构PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1.1我们要去哪儿1
本章计划1
第1章 准备旅行1
1.2数学、科学和工程学合而为一2
1.3寻找计算机科学中的持久原则5
1.4软件系统结构的原则6
1.5效率与权衡9
1.6软件工程原则9
1.7数学方法10
1.8关于编程符号的一些注释11
练习13
1.9后续内容简介14
1.10本章小结16
2.1介绍18
第2章 面向对象编程导论18
本章计划20
2.2绘制矩形Applet21
2.2.1学习内容21
2.2.2复习题32
2.2.3练习32
2.3Draw Shapes Applet32
2.3.1学习内容32
2.3.2复习题47
2.3.3练习47
2.4结论48
2.4.1学习内容48
2.4.2复习题49
2.6提示和技巧50
2.5陷阱50
2.4.3练习50
2.7参考资料51
2.8本章小结51
第3章 链式数据表示53
3.1介绍53
本章计划54
3.2什么是指针55
3.2.1学习内容55
3.2.2链式表示的两个实例55
3.3使用Java的隐式指针57
3.3.1学习内容57
3.4指针图例表示法61
3.4.1学习内容61
3.3.3练习61
3.3.2复习题61
3.4.2复习题64
3.4.3练习64
3.5线性链表65
3.5.1学习内容65
3.5.2在链表中插入新的次节点65
3.5.3声明Java链表类68
3.5.4在链表中搜索某节点项71
3.5.5删除链表的末端节点73
3.5.6在链表中插入新的末端节点75
3.5.7如何打印链表77
3.5.8把所有东西合在一起77
3.5.9现在还要做什么78
3.5.10复习题79
3.5.11练习79
3.6.1学习内容80
3.6其他链式数据结构80
3.6.2复习题82
3.6.3练习82
3.7陷阱82
3.8提示与技巧82
3.9参考资料84
3.10本章小结84
第4章 递归86
4.1介绍86
本章计划86
4.2递归地思考87
4.2.1学习内容87
4.2.2如何递归累加87
4.2.3调用树与调用轨迹91
4.2.4递归连乘93
4.2.5逆转链表与数组95
4.2.6逆转数组98
4.2.7归纳思想99
4.2.8复习题100
4.2.9练习101
4.3常见陷阱——无穷回归103
4.3.1学习内容103
4.3.2复习题104
4.3.3练习104
4.4一个指数级运行时间的递归算法105
4.4.1学习内容105
4.4.2汉诺塔105
4.4.4练习108
4.5陷阱108
4.4.3复习题108
4.6提示与技巧109
4.7参考资料109
4.8本章小结109
第5章 模块化与数据抽象111
5.1介绍111
本章计划113
5.2优先队列——一种抽象数据类型114
5.2.1学习内容114
5.2.2优先队列ADT接口114
5.2.3复习题117
5.2.4练习118
5.3优先队列的两种实现118
5.3.1学习内容118
5.3.2利用已排序链表实现优先队列119
5.3.3利用未排序数组实现优先队列121
5.3.4复习题123
5.3.5练习124
5.4在优先队列中填入新型对象124
5.4.1学习内容124
5.4.2复习题129
5.4.3练习129
5.5程序设计中的模块化与信息隐藏129
5.5.1学习内容129
5.5.2复习题131
5.6陷阱131
5.7提示与技巧132
5.8参考资料132
5.9本章小结132
第6章 线性数据结构——堆栈与队列135
6.1介绍135
本章计划136
6.2堆栈的一些背景知识137
6.2.1学习内容137
6.2.2复习题139
6.2.3练习140
6.3堆栈与队列的ADT140
6.3.1学习内容140
6.3.2堆栈类与队列类的接口142
6.3.3复习题143
6.3.4练习143
6.4使用堆栈ADT检查括号对称性143
6.4.1学习内容143
6.4.3练习148
6.4.2复习题148
6.5利用堆栈ADT计算后缀表达式149
6.5.1学习内容149
6.5.2复习题153
6.5.3练习153
6.6实现堆栈ADT153
6.6.1学习内容153
6.6.2顺序堆栈表示154
6.6.3链式堆栈表示155
6.6.4复习题157
6.6.5练习157
6.7Java如何利用堆栈实现递归方法调用157
6.7.1学习内容157
6.8.1学习内容162
6.8队列ADT的实现162
6.8.2顺序队列表示162
6.7.3练习162
6.7.2复习题162
6.8.3链式队列表示165
6.8.4比较链式队列表示与顺序队列表示167
6.8.5复习题168
6.8.6练习168
6.9其他队列应用169
6.9.1学习内容169
6.9.2操作系统中的队列169
6.9.3在模拟试验中使用队列171
6.9.4复习题173
6.9.5练习173
6.10陷阱173
6.11提示与技巧173
6.13本章小结174
6.12参考资料174
第7章 链表、字符串和动态内存分配176
7.1引言和动机176
本章计划176
7.2表177
7.2.1学习内容177
7.2.2表的ADT177
7.2.3顺序表表示178
7.2.4单向链表表示179
7.2.5比较顺序和链式表示180
7.2.6其他链表表示182
7.2.7循环链表182
7.2.8双向链表182
7.2.9带有头节点的链表183
7.2.10复习题183
7.2.11练习183
7.3.1学习内容184
7.3广义表184
7.3.2复习题187
7.3.3练习187
7.4广义表的应用188
7.4.1学习内容188
7.4.2复习题190
7.4.3练习190
7.5字符串191
7.5.1学习内容191
7.5.2Java中的只读字符串191
7.5.3Java中的String Buffer192
7.5.4在文本文件和字处理程序中的字符串表示方法196
7.6.1学习内容198
7.6动态内存分配198
7.5.6练习198
7.5.5复习题198
7.6.2可用空间列表和垃圾收集200
7.6.3堆和动态内存分配203
7.6.4最先适配204
7.6.5最佳适配205
7.6.6分段存储与合并205
7.6.7压缩以对应分配失败206
7.6.8比较各种应用中堆的使用208
7.6.9引用计数209
7.6.10复习题210
7.6.11练习210
7.7陷阱210
7.8揭示与技巧211
7.9参考资料211
7.10本章小结214
8.1介绍215
第8章 树与图215
本章计划217
8.2树——基本概念与术语219
8.2.1学习内容219
8.2.2复习题220
8.2.3练习221
8.3二叉树221
8.3.1学习内容221
8.3.2复习题222
8.3.3练习222
8.4顺序二叉树表示223
8.4.1学习内容223
8.4.2复习题224
8.5.1学习内容225
8.4.3练习225
8.5应用——堆与优先队列225
8.5.2转化成顺序表示229
8.5.3堆操作性能的一些相关事实232
8.5.4复习题233
8.5.5练习233
8.6遍历二叉树233
8.6.1学习内容233
8.6.2利用链接二叉树表示的遍历235
8.6.3复习题238
8.6.4练习238
8.7二叉搜索树238
8.7.1学习内容238
8.7.2二叉搜索树的一些著名性能优势244
8.7.4练习249
8.7.3复习题249
8.8AVL树及其性能250
8.8.1学习内容250
8.8.2利用插入与轮转构造AVL树254
8.8.3轮转算法的平衡因子与说明256
8.8.4AVL树的著名性能257
8.8.5复习题258
8.8.6练习258
8.92-3树258
8.9.1学习内容258
8.9.2B-树——广义的2-3树261
8.10级数树262
8.10.1学习内容262
8.9.4练习262
8.9.3复习题262
8.10.2复习题263
8.10.3练习263
8.11应用——哈夫曼编码263
8.11.1学习内容263
8.11.2复习题267
8.11.3练习267
8.12图——基本概念与术语267
8.12.1学习内容267
8.12.2一些正式定义269
8.12.3路径、环路与邻接269
8.12.4连通性与子图269
8.12.5邻接点集与度270
8.13.1学习内容271
8.13图的表示271
8.12.7练习271
8.12.6复习题271
8.13.2复习题274
8.13.3练习274
8.14图的搜索274
8.14.1学习内容274
8.14.2复习题278
8.14.3练习278
8.15拓扑排序278
8.15.1学习内容278
8.15.2复习题281
8.15.3练习281
8.16陷阱281
8.18参考资料282
8.17提示与技巧282
8.19本章小结283
第9章 散列和Table ADT288
9.1介绍288
本章计划290
9.2TableADT291
9.2.1学习内容291
9.2.2复习题292
9.2.3练习292
9.3通过简单的示例介绍散列技术292
9.3.1学习内容292
9.3.2复习题298
9.3.3练习298
9.4冲突、负载因子和集群298
9.4.1学习内容298
9.4.3von Mises的概率讨论299
9.4.2冲突299
9.4.4负载因子和集群301
9.4.5复习题303
9.4.6练习304
9.5使用开放定址的散列算法304
9.5.1学习内容304
9.5.2基本群集和它消失的两个示例305
9.5.3保证探测序列会覆盖整个表310
9.5.4性能公式311
9.5.5比较理论和经验结果313
9.5.6复习题314
9.5.7练习314
9.6选择散列函数316
9.6.1学习内容316
9.6.3其他的散列函数方法317
9.6.2除余法317
9.6.4复习题318
9.6.5练习318
9.7使用Table ADT的查找方法比较318
9.7.1学习内容318
9.7.2复习题321
9.7.3练习321
9.8陷阱321
9.9提示与技巧322
9.10参考资料322
9.11本章小结323
第10章 排序327
10.1介绍327
本章计划328
10.2.1学习内容330
10.2背景知识330
10.2.3练习333
10.3优先队列排序方法333
10.3.1学习内容333
10.2.2复习题333
10.3.2一些预设334
10.3.3优先队列排序334
10.3.4SelectionSort336
10.3.5HeapSort338
10.3.6复习题340
10.3.7练习340
10.4分而治之方法340
10.4.1学习内容340
10.4.2MergeSort341
10.4.3QuickSort342
10.4.5练习345
10.4.4复习题345
10.5插入关键字且保持有序的方法346
10.5.1学习内容346
10.5.2InsertionSort346
10.5.3TreeSort348
10.5.4复习题349
10.5.5练习349
10.6O(n)方法——地址计算排序350
10.6.1学习内容350
10.6.2ProxmapSort350
10.6.3RadixSort361
10.6.4复习题362
10.6.5练习362
10.7.1学习内容363
10.7.2ShellSort363
10.7其他方法363
10.7.3BubbleSort367
10.7.4复习题368
10.7.5练习368
10.8比较与展望368
10.8.1学习内容368
10.8.2一些简单的智慧371
10.8.3复习题372
10.8.4练习372
10.9陷阱372
10.10提示与技巧372
10.11参考资料373
10.12本章小结373
A.1JAVATM向导378
附录A JAVATM要点回顾378
本附录计划381
A.2标识符、保留字、名称和变量381
A.2.1学习内容381
A.2.2复习题383
A.2.3练习383
A.3Java中的数据类型383
A.3.1Java中的引用数据类型385
A.3.2复习题387
A.3.3练习388
A.4Java操作符和表达式388
A.4.1Java中的操作符优先级和结合389
A.4.2复习题393
A.5Java中的控制流394
A.5.1选择语句394
A.4.3练习394
A.5.2循环语句396
A.5.3break、continue和return语句397
A.5.4复习题399
A.5.5练习399
A.6Java中的类、方法和对象399
A.6.1学习内容399
A.6.2复习题400
A.6.3练习401
A.7在Java中引入包401
A.7.1学习内容401
A.8Java中的注释402
A.8.1学习内容402
A.7.2复习题402
A.7.3练习402
A.8.2复习题403
A.8.3练习403
A.9参考资料403
附录B 表示效率的语言405
B.1介绍405
本附录计划405
B.2.1学习内容406
B.2我们用什么来作为衡量标准406
B.2.2复习题411
B.2.3练习411
B.3O-符号意义的直观认识411
B.3.1学习内容411
B.3.2注意415
B.3.3本书其余部分所涉及的内容416
B.4.1学习内容418
B.4O-符号的定义和操纵418
B.3.4复习题418
B.3.5练习418
B.4.2O-符号的正式证明的例子419
B.4.3用于操纵O-符号的实用的简化操作420
B.4.4复习题422
B.4.5练习422
B.5O-表示法没有包含的知识423
B.5.1学习内容423
B.5.2复习题424
B.5.3练习424
B.6参考资料424
B.7本附录小结425
附录C 软件工程概念427
C.1介绍427
本附录计划428
C.2.2你是否有张获奖彩票429
C.2面向对象设计与自顶向下编程429
C.2.1学习内容429
C.2.3选定Table的数据表示438
C.2.4第二种求精441
C.2.5复习题444
C.2.6练习444
C.3程序正确性证明445
C.3.1学习内容445
C.3.2一个小错误450
C.3.3形式逻辑一瞥452
C.3.4复习题455
C.3.5练习455
C.4程序转换与优化456
C.4.1学习内容456
C.5.1学习内容461
C.5测试程序461
C.4.2复习题461
C.4.3练习461
C.5.2自底向上测试462
C.5.3单元测试、带格式的调试辅助器与测试容器463
C.5.4集成测试464
C.5.5可接受性测试与回归测试464
C.5.6自顶向下测试与桩465
C.5.7测试计划467
C.5.8测试与验证的角色比较467
C.5.9复习题467
C.5.10练习468
C.6度量与调节哲学468
C.6.1学习内容468
C.6.2比较一些二叉搜索方法469
C.6.4练习473
C.6.3复习题473
C.7软件重用与自底向上编程474
C.7.1学习内容474
C.7.2复习题477
C.7.3练习477
C.8程序结构化与文档477
C.8.1学习内容477
C.8.2编程风格原则483
C.8.3文档484
C.8.4复习题485
C.8.5练习485
C.9陷阱486
C.10提示与技巧487
C.11参考资料488
C.12附录小结489