书籍详情
数据结构与Java集合框架
作者:(美)柯林斯(Collins, W.J.)著
出版社:清华大学出版社
出版时间:2006-04-01
ISBN:9787302121343
定价:¥68.00
购买这本书可以去
内容简介
本书以Java语言为实现语言,全面、深入地阐述了数据结构的基本原理及其实现。学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在Java集合框架中提供的一些实现。.本书内容丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力。他们可以从基础开始构建,也可以扩展本书中的应用程序。本书还附有一些可选的实验,它给学生提供了实践所学概念的机会,以此来强化书中介绍的概念。...
作者简介
暂缺《数据结构与Java集合框架》作者简介
目录
第1章 Java语言的重要特性 1
1.1 类 1
1.1.1 方法描述 2
1.1.2 数据抽象 4
1.1.3 Employee类 6
1.1.4 局部变量和字段 8
1.1.5 构造函数 8
1.1.6 实例变量和静态变量 9
1.1.7 可见性修饰符 10
1.1.8 图形用户接口 10
1.1.9 Company类 11
1.1.10 继承 12
1.1.11 可见性修饰符protected 13
1.1.12 继承和构造函数 15
1.1.13 多态性(Polymorphism) 19
1.1.14 信息隐藏 21
1.1.15 异常处理 22
1.1.16 异常传送 24
1.2 小结 26
1.3 练习 27
第2章 接口和集合类 31
2.1 抽象方法和抽象类 31
2.2 接口 33
2.3 数组 36
2.4 集合类 38
2.5 集合类的存储结构 39
2.5.1 链接结构 39
2.5.2 LinkedCollection类 39
2.5.3 LinkedCollection类中的
字段和方法定义 42
2.5.4 迭代器 45
2.5.5 数据结构和Java
Collections Framework 47
2.6 小结 48
2.7 练习 48
第3章 软件工程介绍 51
3.1 软件开发生命期 51
3.2 问题分析 52
3.3 程序设计 53
3.3.1 方法描述和字段 54
3.3.2 依赖性图表 55
3.4 程序实现 57
3.4.1 方法验证 57
3.4.2 修正是否可行 58
3.4.3 评估方法的效率 58
3.4.4 大O符号 59
3.4.5 快速获取大O估计时间 61
3.4.6 平衡 64
3.4.7 运行时分析 65
3.4.8 Random类 66
3.5 程序维护 67
3.6 小结 68
3.7 练习 68
第4章 递归 73
4.1 绪论 73
4.2 阶乘 74
4.3 十进制转换成二进制 77
4.4 汉诺塔 80
4.5 回溯 88
4.6 二叉树搜索 96
4.7 间接递归 105
4.8 递归的开销 105
4.9 小结 106
4.10 练习 107
第5章 数组列表 119
5.1 List接口 119
5.2 ArrayList类 120
5.2.1 ArrayList类的方法描述 122
5.2.2 ArrayList类标题 127
5.2.3 ArrayList类中的字段 128
5.2.4 ArrayList对象可串行化性 128
5.2.5 ArrayList对象的可克隆性 129
5.3 实现ArrayList类 130
5.3.1 定义add方法 131
5.3.2 分摊时间 133
5.3.3 clone方法和copy构造函数 134
5.3.4 Fail-Fast 迭代器 135
5.4 高精度算法 136
5.4.1 设计VeryLongInt类 137
5.4.2 实现VeryLongInt类 138
5.5 VECTOR类 141
5.6 小结 141
5.7 练习 141
第6章 链表 149
6.1 LinkedList类 149
6.1.1 比较LinkedList类
和ArrayList类 151
6.1.2 LinkList迭代器 153
6.1.3 LinkedList类的字段和
实现方法 158
6.1.4 ListItr类的字段和实现 164
6.1.5 LinkedList类的其他设计
和实现方法 167
6.1.6 循环链表 169
6.2 行编辑器 171
6.2.1 设计Editor类 174
6.2.2 实现Editor类 176
6.2.3 Editor类方法的大O分析 179
6.2.4 EditorDirver类 179
6.3 小结 181
6.4 练习 181
第7章 队列和堆栈 187
7.1 队列 187
7.1.1 Queue类的设计与实现 188
7.1.2 Queue类可选择的设计和实现 190
7.2 计算机模拟 194
7.3 应用:模拟洗车 195
7.3.1 CarWash类的设计 196
7.3.2 CarWash类的实现 197
7.3.3 CarWash方法分析 200
7.3.4 随机到达时间 200
7.4 堆栈 201
7.4.1 Stack类的设计和实现 202
7.4.2 Java集合框架中的Stack类 202
7.4.3 Stack类可选的设计和实现 203
7.5 应用:如何编译实现递归 203
7.6 应用:中缀表达式到后缀
表达式的转换 207
7.6.1 后缀表示 208
7.6.2 转换矩阵 210
7.6.3 标记 211
7.6.4 前缀表达式 212
7.7 小结 214
7.8 练习 215
第8章 二叉树和二叉搜索树 225
8.1 二叉树的定义和属性 226
8.1.1 二叉树定理 232
8.1.2 外部路径长度 234
8.1.3 对二叉树的遍历 235
8.2 二叉搜索树 240
8.2.1 BinSearchTree类 241
8.2.2 BinSearchTree类的字段
及内置类 243
8.2.3 BinSearchTree类的实现 244
8.2.4 remove方法 249
8.2.5 TreeIterator类 256
8.3 小结 258
8.4 练习 259
第9章 平衡二叉搜索树 265
9.1 二叉搜索树的一个问题 265
9.2 旋转 266
9.3 AVL树 270
9.3.1 AVL树的高度 271
9.3.2 AVLTree类 272
9.3.3 fixAfterInsertion方法 274
9.3.4 add方法的正确性 282
9.4 RED-BLACK树 284
9.5 小结 290
9.6 练习 290
第10章 TreeMap和TreeSet 295
10.1 TreeMap类 295
10.1.1 TreeMap类的方法介绍 296
10.1.2 TreeMap类的字段 298
10.1.3 Comparator接口和
Comparable接口 299
10.1.4 Entry类 300
10.1.5 TreeMap类的实现 300
10.1.6 fixAfterInsertion方法 302
10.1.7 Insertion的三种情况 303
10.1.8 TreeMap类的其他方法 307
10.1.9 fixAfterDeletion方法 311
10.1.10 entrySet方法 318
10.2 TREEMAP对象:一个简单
的辞典 318
10.2.1 Thesaurus类的设计和实现 319
10.2.2 ThesaurusDriver类的
设计和实现 320
10.3 TreeSet类 322
10.4 一个简单的拼写检查器 326
10.4.1 SpellChecker类的设计
和实现 327
10.4.2 SpellCheckerDriver类
的设计与实现 328
10.5 小结 330
10.6 练习 331
第11章 优先级队列 337
11.1 简介 337
11.2 PriorityQueue接口的定义 338
11.3 PriorityQueue接口的实现 339
11.3.1 Heap类 340
11.3.2 Heap类中的字段 344
11.3.3 Heap类的实现 344
11.3.4 percolateUp方法 345
11.3.5 percolateDown方法 349
11.4 应用:Huffman编码 351
11.4.1 Huffman树 353
11.4.2 贪婪算法 356
11.4.3 Huffman类 356
11.5 小结 361
11.6 练习 362
第12章 排序 367
12.1 简介 367
12.2 插入排序 368
12.3 排序能有多快 370
12.4 快速排序法 371
12.4.1 归并排序 372
12.4.2 树排序 377
12.4.3 堆排序 379
12.4.4 快速排序 383
12.5 小结 391
12.6 练习 391
第13章 检索和散列类 401
13.1 检索的分析框架 401
13.2 检索概述 402
13.2.1 顺序检索 402
13.2.2 二分法检索 403
13.2.3 red-black树检索 403
13.3 HashMap类 404
13.3.1 HashMap类的方法描述 404
13.3.2 HashMap类的字段 406
13.3.3 散列设计 406
13.3.4 hashCode方法 409
13.3.5 均匀散列假设 410
13.3.6 链 411
13.3.7 HashMap类的实现 412
13.3.8 链式散列分析 416
13.3.9 HashIterator类 418
13.4 HashSet类 419
13.5 开放地址散列 419
13.5.1 remove方法 421
13.5.2 主簇 425
13.5.3 双散列 426
13.5.4 开放地址散列分析 429
13.6 小结 432
13.7 练习 432
第14章 图、树和网络 437
14.1 无向图 437
14.2 有向图 440
14.3 树 441
14.4 网络 442
14.5 图的算法 443
14.5.1 迭代器 444
14.5.2 连通性 449
14.5.3 产生最小生成树 450
14.5.4 在网络中寻找最短路径 454
14.6 开发Network类 457
14.6.1 Network类的方法描述 458
14.6.2 Network类的字段 460
14.6.3 实现Network类 462
14.6.4 Network类的另一种
设计和实现 469
14.7 突破网络 471
14.8 小结 473
14.9 练习 474
附录A 数学背景知识 481
A.1 简介 481
A.2 函数和数列 481
A.3 求和与求积 482
A.4 对数 483
A.5 数学归纳法 485
A.6 练习 492
附录B GUI和GUIListener类 495
B.1 简介 495
B.2 线程 496
B.3 实现Process接口 497
B.4 GUI类 499
B.4.1 GUI构造函数 500
B.4.2 GUI类中的其他方法 501
B.5 GUIListener类 502
B.6 综合应用 503
附录C Java集合框架 505
C.1 简介 505
C.2 Collection接口 505
C.3 List接口 507
C.4 ListIterator接口 509
C.5 Set接口 511
C.6 Map接口 513
C.7 ArrayList类 516
C.8 LinkedList类 527
C.9 TreeSet类 543
C.10 TreeMap类 555
C.11 HashSet类 567
C.12 HashMap类 575
1.1 类 1
1.1.1 方法描述 2
1.1.2 数据抽象 4
1.1.3 Employee类 6
1.1.4 局部变量和字段 8
1.1.5 构造函数 8
1.1.6 实例变量和静态变量 9
1.1.7 可见性修饰符 10
1.1.8 图形用户接口 10
1.1.9 Company类 11
1.1.10 继承 12
1.1.11 可见性修饰符protected 13
1.1.12 继承和构造函数 15
1.1.13 多态性(Polymorphism) 19
1.1.14 信息隐藏 21
1.1.15 异常处理 22
1.1.16 异常传送 24
1.2 小结 26
1.3 练习 27
第2章 接口和集合类 31
2.1 抽象方法和抽象类 31
2.2 接口 33
2.3 数组 36
2.4 集合类 38
2.5 集合类的存储结构 39
2.5.1 链接结构 39
2.5.2 LinkedCollection类 39
2.5.3 LinkedCollection类中的
字段和方法定义 42
2.5.4 迭代器 45
2.5.5 数据结构和Java
Collections Framework 47
2.6 小结 48
2.7 练习 48
第3章 软件工程介绍 51
3.1 软件开发生命期 51
3.2 问题分析 52
3.3 程序设计 53
3.3.1 方法描述和字段 54
3.3.2 依赖性图表 55
3.4 程序实现 57
3.4.1 方法验证 57
3.4.2 修正是否可行 58
3.4.3 评估方法的效率 58
3.4.4 大O符号 59
3.4.5 快速获取大O估计时间 61
3.4.6 平衡 64
3.4.7 运行时分析 65
3.4.8 Random类 66
3.5 程序维护 67
3.6 小结 68
3.7 练习 68
第4章 递归 73
4.1 绪论 73
4.2 阶乘 74
4.3 十进制转换成二进制 77
4.4 汉诺塔 80
4.5 回溯 88
4.6 二叉树搜索 96
4.7 间接递归 105
4.8 递归的开销 105
4.9 小结 106
4.10 练习 107
第5章 数组列表 119
5.1 List接口 119
5.2 ArrayList类 120
5.2.1 ArrayList类的方法描述 122
5.2.2 ArrayList类标题 127
5.2.3 ArrayList类中的字段 128
5.2.4 ArrayList对象可串行化性 128
5.2.5 ArrayList对象的可克隆性 129
5.3 实现ArrayList类 130
5.3.1 定义add方法 131
5.3.2 分摊时间 133
5.3.3 clone方法和copy构造函数 134
5.3.4 Fail-Fast 迭代器 135
5.4 高精度算法 136
5.4.1 设计VeryLongInt类 137
5.4.2 实现VeryLongInt类 138
5.5 VECTOR类 141
5.6 小结 141
5.7 练习 141
第6章 链表 149
6.1 LinkedList类 149
6.1.1 比较LinkedList类
和ArrayList类 151
6.1.2 LinkList迭代器 153
6.1.3 LinkedList类的字段和
实现方法 158
6.1.4 ListItr类的字段和实现 164
6.1.5 LinkedList类的其他设计
和实现方法 167
6.1.6 循环链表 169
6.2 行编辑器 171
6.2.1 设计Editor类 174
6.2.2 实现Editor类 176
6.2.3 Editor类方法的大O分析 179
6.2.4 EditorDirver类 179
6.3 小结 181
6.4 练习 181
第7章 队列和堆栈 187
7.1 队列 187
7.1.1 Queue类的设计与实现 188
7.1.2 Queue类可选择的设计和实现 190
7.2 计算机模拟 194
7.3 应用:模拟洗车 195
7.3.1 CarWash类的设计 196
7.3.2 CarWash类的实现 197
7.3.3 CarWash方法分析 200
7.3.4 随机到达时间 200
7.4 堆栈 201
7.4.1 Stack类的设计和实现 202
7.4.2 Java集合框架中的Stack类 202
7.4.3 Stack类可选的设计和实现 203
7.5 应用:如何编译实现递归 203
7.6 应用:中缀表达式到后缀
表达式的转换 207
7.6.1 后缀表示 208
7.6.2 转换矩阵 210
7.6.3 标记 211
7.6.4 前缀表达式 212
7.7 小结 214
7.8 练习 215
第8章 二叉树和二叉搜索树 225
8.1 二叉树的定义和属性 226
8.1.1 二叉树定理 232
8.1.2 外部路径长度 234
8.1.3 对二叉树的遍历 235
8.2 二叉搜索树 240
8.2.1 BinSearchTree类 241
8.2.2 BinSearchTree类的字段
及内置类 243
8.2.3 BinSearchTree类的实现 244
8.2.4 remove方法 249
8.2.5 TreeIterator类 256
8.3 小结 258
8.4 练习 259
第9章 平衡二叉搜索树 265
9.1 二叉搜索树的一个问题 265
9.2 旋转 266
9.3 AVL树 270
9.3.1 AVL树的高度 271
9.3.2 AVLTree类 272
9.3.3 fixAfterInsertion方法 274
9.3.4 add方法的正确性 282
9.4 RED-BLACK树 284
9.5 小结 290
9.6 练习 290
第10章 TreeMap和TreeSet 295
10.1 TreeMap类 295
10.1.1 TreeMap类的方法介绍 296
10.1.2 TreeMap类的字段 298
10.1.3 Comparator接口和
Comparable接口 299
10.1.4 Entry类 300
10.1.5 TreeMap类的实现 300
10.1.6 fixAfterInsertion方法 302
10.1.7 Insertion的三种情况 303
10.1.8 TreeMap类的其他方法 307
10.1.9 fixAfterDeletion方法 311
10.1.10 entrySet方法 318
10.2 TREEMAP对象:一个简单
的辞典 318
10.2.1 Thesaurus类的设计和实现 319
10.2.2 ThesaurusDriver类的
设计和实现 320
10.3 TreeSet类 322
10.4 一个简单的拼写检查器 326
10.4.1 SpellChecker类的设计
和实现 327
10.4.2 SpellCheckerDriver类
的设计与实现 328
10.5 小结 330
10.6 练习 331
第11章 优先级队列 337
11.1 简介 337
11.2 PriorityQueue接口的定义 338
11.3 PriorityQueue接口的实现 339
11.3.1 Heap类 340
11.3.2 Heap类中的字段 344
11.3.3 Heap类的实现 344
11.3.4 percolateUp方法 345
11.3.5 percolateDown方法 349
11.4 应用:Huffman编码 351
11.4.1 Huffman树 353
11.4.2 贪婪算法 356
11.4.3 Huffman类 356
11.5 小结 361
11.6 练习 362
第12章 排序 367
12.1 简介 367
12.2 插入排序 368
12.3 排序能有多快 370
12.4 快速排序法 371
12.4.1 归并排序 372
12.4.2 树排序 377
12.4.3 堆排序 379
12.4.4 快速排序 383
12.5 小结 391
12.6 练习 391
第13章 检索和散列类 401
13.1 检索的分析框架 401
13.2 检索概述 402
13.2.1 顺序检索 402
13.2.2 二分法检索 403
13.2.3 red-black树检索 403
13.3 HashMap类 404
13.3.1 HashMap类的方法描述 404
13.3.2 HashMap类的字段 406
13.3.3 散列设计 406
13.3.4 hashCode方法 409
13.3.5 均匀散列假设 410
13.3.6 链 411
13.3.7 HashMap类的实现 412
13.3.8 链式散列分析 416
13.3.9 HashIterator类 418
13.4 HashSet类 419
13.5 开放地址散列 419
13.5.1 remove方法 421
13.5.2 主簇 425
13.5.3 双散列 426
13.5.4 开放地址散列分析 429
13.6 小结 432
13.7 练习 432
第14章 图、树和网络 437
14.1 无向图 437
14.2 有向图 440
14.3 树 441
14.4 网络 442
14.5 图的算法 443
14.5.1 迭代器 444
14.5.2 连通性 449
14.5.3 产生最小生成树 450
14.5.4 在网络中寻找最短路径 454
14.6 开发Network类 457
14.6.1 Network类的方法描述 458
14.6.2 Network类的字段 460
14.6.3 实现Network类 462
14.6.4 Network类的另一种
设计和实现 469
14.7 突破网络 471
14.8 小结 473
14.9 练习 474
附录A 数学背景知识 481
A.1 简介 481
A.2 函数和数列 481
A.3 求和与求积 482
A.4 对数 483
A.5 数学归纳法 485
A.6 练习 492
附录B GUI和GUIListener类 495
B.1 简介 495
B.2 线程 496
B.3 实现Process接口 497
B.4 GUI类 499
B.4.1 GUI构造函数 500
B.4.2 GUI类中的其他方法 501
B.5 GUIListener类 502
B.6 综合应用 503
附录C Java集合框架 505
C.1 简介 505
C.2 Collection接口 505
C.3 List接口 507
C.4 ListIterator接口 509
C.5 Set接口 511
C.6 Map接口 513
C.7 ArrayList类 516
C.8 LinkedList类 527
C.9 TreeSet类 543
C.10 TreeMap类 555
C.11 HashSet类 567
C.12 HashMap类 575
猜您喜欢