转载至: https://download.csdn.net/download/m0_37819279/10571506
下载链接: 点我一键跳转到 下载链接
下载声明: 本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
本书内容架构完整,逻辑清楚,采用丰富的图例来阐述基本概念及应用。强调边做边学,结合下载文件,给予最完整的支援。以Java程序语言实现数据结构中的重要理论,以范例程序说明数据结构的内涵。采用JavaID工具,整合编译、执行、测试及除错功能
第1章 数据结构导论 1
1.1 数据结构简介 2
1.1.1 数据与信息 2
1.1.2 算法 3
1.1.3 算法的条件 3
1.2 认识程序设计 5
1.2.1 程序开发流程 5
1.2.2 数据类型简介 6
1.2.3 结构化程序设计 6
1.2.4 面向对象程序设计 7
1.3 算法效能分析 9
1.3.1 时间复杂度 9
1.3.2 Big-oh 10
1.3.3 Ω(omega) 11
1.3.4 θ(theta) 12
1.4 面向对象程序设计与Java 12
1.4.1 类与对象 12
1.4.2 面向对象特性 14
1.4.3 数据封装 14
1.4.4 类继承 15
1.4.5 对象多态 17
1.4.6 抽象类 19
1.4.7 接口 20
本章重点整理 22
本章习题 23
第2章 数组结构 29
2.1 线性表 30
2.1.1 线性表定义 30
2.1.2 线性表在计算机中的应用 30
2.2 认识数组 31
2.2.1 一维数组 32
2.2.2 二维数组 33
2.2.3 三维数组 35
2.2.4 n维数组 37
2.2.5 Arrays类实现 38
2.3 矩阵的简介与运算 40
2.3.1 矩阵相加 40
2.3.2 矩阵相乘 42
2.3.3 转置矩阵 45
2.3.4 稀疏矩阵 46
2.3.5 上三角形矩阵 50
2.3.6 下三角形矩阵 55 [2]
2.4数组与多项式 60
2.4.1认识多项式 60
2.4.2多项式的加法 60
本章重点整理 61
本章习题 63
第3章链表 67
3.1 单向链表 68
3.1.1建立单向链表 70
3.1.2单向链表节点的删除 74
3.1.3单向链表的节点插入 78
3.1.4单向链表的反转 80
3.1.5单向链表的串联 84
3.1.6多项式的列表表示法 85
3.2环形链表 89
3.2.1环形链表的定义 89
3.2.2环形链表的节点插入 90
3.2.3环形链表的节点删除 90
3.2.4环形链表的串联 93
3.2.5环形链表表示稀疏矩阵 97
[3]
3.3双向链表 98
3.3.1双向链表的定义 98
3.3.2双向链表的节点插入 98
3.3.3双向链表节点删除 99
本章重点整理 103
本章习题 103
第4章堆栈 110
4.1认识堆栈 111
4.1.1堆栈的运算 111
4.1.2堆栈的数组实现 111
4.1.3堆栈的表实现 115
4.2堆栈的应用 118
4.2.1汉诺塔问题 118
4.2.2迷宫问题 124
4.2.3八皇后问题 129
4.3算术表达式的求值法 132
4.3.1中序表示法求值 133
4.3.2前序表示法求值 134
4.3.3后序表示法求值 135
4.4中序法转换为前序法 136
4.4.1二叉树法 136
4.4.2括号法 136
4.4.3堆栈法 137
4.5前序与后序式转换成中序式 143
4.5.1括号法 143
4.5.2堆栈法 144
本章重点整理 146
本章习题 147
第5章队列 155
5.1认识队列 156
5.1.1队列的工作运算 156
5.1.2队列的数组实现 156
5.1.3以链表实现队列 159
5.2队列的应用 161
5.2.1环形队列 162
5.2.2优先队列 165
5.2.3双向队列 166
本章重点整理 169
本章习题 169
第6章树状结构 172
6.1树 173
6.2二叉树简介 174
6.2.1二叉树的定义 175
6.2.2特殊二叉树简介 176
6.3二叉树存储方式 177
6.3.1数组表示法 177
6.3.2列表表示法 179
6.4二叉树的遍历 181
6.4.1中序遍历 182
6.4.2前序遍历 182
6.4.3后序遍历 183
6.4.4二叉树的遍历实现 183
6.4.5二叉运算树 187
6.5二叉树的高级研究 192
6.5.1二叉排序树 192
6.5.2二叉搜索树 197
6.5.3线索二叉树 200
6.6树的二叉树表示法 205
6.6.1树转换为二叉树 205
6.6.2树林转换为二叉树 209
6.6.3树与树林的遍历 211
6.6.4确定唯一二叉树 214
本章重点整理 216
本章习题 217
第7章图形结构 224
7.1图论的起源 225
7.2图形介绍 226
7.3图形表示法 228
7.3.1相邻矩阵法 228
7.3.2相邻表法 232
7.3.3相邻多元列表法 236
7.3.4索引表格法 237
7.4图形的遍历 239
7.4.1先深后广法 240
7.4.2先广后深法 243
7.5生成树 246
7.6MST生成树 248
7.6.1Prim算法 249
7.6.2Kruskal算法 250
7.7图形最短路径 255
7.7.1单点对全部顶点 256
7.7.2顶点两两之间的最短距离 259
7.8AOV网络与拓扑排序 263
7.8.1AOV网络简介 264
7.8.2拓扑排序实现 264
7.8.3AOE网络 266
本章重点整理 268
本章习题 269
第8章排序 277
8.1排序简介 278
8.1.1排序的分类 279
8.1.2排序算法分析 279
8.2内部排序法 280
8.2.1冒泡排序法 280
8.2.2选择排序法 285
8.2.3插入排序法 288
8.2.4希尔排序法 290
8.2.5合并排序法 292
8.2.6快速排序法 293
8.2.7堆积排序法 297
8.2.8基数排序法 304
8.3外部排序法 307
本章重点整理 316
本章习题 317
第9章查找 323
9.1查找简介 324
9.2常见查找方法 324
9.2.1顺序查找法 324
9.2.2二分查找法 326
9.2.3插值查找法 328
9.2.4斐波那契查找法 331
9.3哈希查找法 333
9.3.1哈希法简介 333
9.3.2常见的哈希函数 334
9.3.3碰撞问题 338
9.3.4哈希法综合范例 342
本章重点整理 345
本章习题 346
附录Java的开发环境简介 353