《数据结构 Java语言描述 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:刘小晶,杜选,朱蓉编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302389446
  • 页数:390 页
图书介绍:本书采用Java语言作为算法描述语言,共9章,主要内容可分成两大部分。第一部分主要介绍线性表、栈、数组、树和图等基本数据结构的特点、存储方式、运算原理和方法、典型应用及其在计算机中的表示和实现;第二部分主要讨论查找与排序两种最常用操作的实现原理、方法及性能分析。

第1章 绪论 1

1.1 数据结构课程讨论的内容 1

1.1.1 求解问题举例 1

1.1.2 本课程讨论的内容 4

1.2 基本概念与术语 4

1.2.1 数据与数据结构 5

1.2.2 数据类型 9

1.2.3 抽象数据类型 10

1.3 算法和算法分析 12

1.3.1 算法的基本概念 12

1.3.2 算法的描述 13

1.3.3 算法分析 14

1.3.4 算法设计举例 20

1.4 Java提供的泛型方法 23

小结 25

习题1 26

第2章 线性表 29

2.1 线性表及其基本操作 29

2.1.1 线性表的基本概念 29

2.1.2 线性表的抽象数据类型描述 30

2.2 线性表的顺序存储及其实现 31

2.2.1 线性表的顺序存储 31

2.2.2 顺序表上基本操作的实现 33

2.2.3 顺序表应用举例 36

2.3 线性表的链式存储及其实现 37

2.3.1 单链表的表示 38

2.3.2 单链表上基本操作的实现 40

2.3.3 单链表应用举例 47

2.3.4 其他链表 50

2.4 顺序表与链表的比较 55

2.5 线性表的应用举例 56

小结 63

习题2 63

第3章 栈与队列 66

3.1 栈 66

3.1.1 栈的概念 66

3.1.2 栈的抽象数据类型描述 67

3.1.3 顺序栈及其基本操作的实现 67

3.1.4 链栈及其基本操作的实现 70

3.1.5 栈的应用 73

3.2 队列 85

3.2.1 队列的概念 85

3.2.2 队列的抽象数据类型描述 86

3.2.3 顺序队列及其基本操作的实现 86

3.2.4 链队列及其基本操作的实现 90

3.2.5 队列的应用 92

3.2.6 优先级队列 94

3.3 栈与队列的比较 98

3.4 栈与队列的综合应用举例 100

小结 103

习题3 104

第4章 串与数组 107

4.1 串概述 107

4.1.1 串的基本概念 107

4.1.2 串的抽象数据类型描述 108

4.2 串的存储结构 109

4.2.1 串的顺序存储结构 109

4.2.2 串的链式存储结构 109

4.3 顺序串的实现 110

4.3.1 顺序串的类定义 110

4.3.2 串的基本操作实现 112

4.4 串的模式匹配操作 115

4.4.1 Brute-Force模式匹配算法 115

4.4.2 KMP模式匹配算法 117

4.5 串的应用举例 122

4.6 数组的概念及顺序存储结构 128

4.6.1 数组的基本概念 129

4.6.2 数组的抽象数据类型描述 129

4.6.3 数组的顺序存储结构 130

4.7 特殊矩阵的压缩存储 131

4.7.1 对称矩阵的压缩存储 131

4.7.2 三角矩阵的压缩存储 132

4.7.3 对角矩阵的压缩存储 132

4.8 稀疏矩阵的压缩存储 133

4.8.1 稀疏矩阵的三元组表存储 133

4.8.2 稀疏矩阵的十字链表存储 139

4.9 数组的应用举例 141

小结 142

习题4 143

第5章 树与二叉树 146

5.1 树的基本概念 146

5.2 二叉树概述 149

5.2.1 二叉树的基本概念 149

5.2.2 二叉树的性质 151

5.2.3 二叉树的存储结构 153

5.3 二叉树的遍历 156

5.3.1 二叉树的遍历方法及其实现 156

5.3.2 二叉树遍历算法的应用举例 163

5.3.3 建立二叉树 168

5.4 哈夫曼树及哈夫曼编码 173

5.4.1 哈夫曼树的基本概念 173

5.4.2 哈夫曼树和哈夫曼编码的构造方法 174

5.4.3 构造哈夫曼树和哈夫曼编码类的描述 177

5.5 树与森林 179

5.5.1 树、森林与二叉树之间的转换 179

5.5.2 树的存储结构 182

5.5.3 树和森林的遍历 185

小结 187

习题5 188

第6章 图 190

6.1 图概述 190

6.1.1 图的基本概念 190

6.1.2 图的抽象数据类型描述 194

6.2 图的存储结构 194

6.2.1 邻接矩阵 195

6.2.2 邻接表 200

6.3 图的遍历 205

6.3.1 广度优先搜索 206

6.3.2 深度优先搜索 208

6.3.3 图的遍历方法的应用举例 209

6.4 最小生成树 215

6.4.1 最小生成树的基本概念 215

6.4.2 克鲁斯卡尔算法 216

6.4.3 普里姆算法 217

6.5 最短路径 220

6.5.1 求某个顶点到其余顶点的最短路径 221

6.5.2 求每一对顶点之间的最短路径 223

6.6 拓扑排序 227

6.6.1 拓扑排序的基本概念 228

6.6.2 拓扑排序的实现 228

6.7 关键路径 230

小结 234

习题6 235

第7章 内排序 238

7.1 排序的基本概念 238

7.2 插入排序 241

7.2.1 直接插入排序 241

7.2.2 希尔排序 244

7.3 交换排序 245

7.3.1 冒泡排序 245

7.3.2 快速排序 247

7.4 选择排序 250

7.4.1 直接选择排序 250

7.4.2 树形选择排序 251

7.4.3 堆排序 255

7.5 归并排序 260

7.6 基数排序 263

7.6.1 多关键字排序 263

7.6.2 链式基数排序 263

小结 266

习题7 267

第8章 外排序 269

8.1 外排序概述 269

8.2 磁盘排序 271

8.2.1 磁盘信息的存取 271

8.2.2 多路平衡归并 272

8.2.3 置换—选择排序 273

8.2.4 最优归并树 277

小结 280

习题8 282

第9章 查找 285

9.1 查找的基本概念 285

9.2 静态表查找 286

9.2.1 顺序查找 286

9.2.2 二分查找 287

9.2.3 分块查找 289

9.3 动态表查找 292

9.3.1 二叉排序树 292

9.3.2 平衡二叉树 299

9.3.3 B—树和B+树 302

9.3.4 红黑树简介 311

9.4 哈希表查找 313

9.4.1 哈希表的定义 313

9.4.2 常用的哈希函数 314

9.4.3 处理冲突的方法 317

9.4.4 哈希表的查找和性能分析 322

小结 323

习题9 324

附录A 习题参考答案 327

参考文献 390