图书介绍
数据结构-Java语言描述pdf电子书版本下载
- 朱战立编著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302117187
- 出版时间:2005
- 标注页数:313页
- 文件大小:12MB
- 文件页数:330页
- 主题词:数据结构-高等学校-教材;JAVA语言-程序设计-高等学校-教材
PDF下载
下载说明
数据结构-Java语言描述PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
0.1 数据类型 1
0.1.1 基本数据类型 1
第0章 Java语言基础 1
0.1.2 基本数据类型的包装类 2
0.1.3 数组 2
0.1.4 字符串 3
0.2 类和对象 4
0.2.1 类的定义 4
0.2.2 类和类成员的访问权限 6
0.2.3 static关键字和main函数 6
0.2.4 对象和对象引用 7
0.2.5 抽象类 7
0.3.1 子类的定义方法 8
0.2.6 最终类 8
0.3 继承 8
0.3.2 子类的构造函数 10
0.3.3 子类对父类成员函数的覆盖 10
0.3.4 接口 10
0.4 多态 13
0.5 异常处理 14
0.5.1 Java的异常处理 14
0.5.2 在同一个函数中抛出异常和处理异常 15
0.5.3 在不同的函数中抛出异常和处理异常 16
0.6 包 17
0.6.1 包的作用 17
0.6.2 包的定义和包的导入 18
习题0 19
1.1 数据结构的基本概念 20
第1章 绪论 20
1.2 抽象数据类型 23
1.3 算法和算法的时间复杂度 24
1.3.1 算法 24
1.3.2 算法设计目标 26
1.3.3 算法的时间复杂度分析 26
1.4 算法的空间复杂度分析 30
1.5 Java语言的工具包 31
习题1 31
2.1 线性表 34
2.1.1 线性表的定义 34
第2章 线性表 34
2.1.2 线性表抽象数据类型 35
2.2 顺序表 36
2.2.1 顺序表的存储结构 36
2.2.2 顺序表类 37
2.2.3 顺序表的效率分析 41
2.2.4 顺序表类应用举例 41
2.3 单链表 44
2.3.1 单链表的结构 45
2.3.2 结点类 46
2.3.3 单链表类 47
2.3.4 单链表的效率分析 50
2.3.5 顺序表和单链表的比较 51
2.3.6 单链表应用举例 51
2.5 双向链表 52
2.4 循环单链表 52
2.6 仿真链表 54
2.7 面向对象的软件设计方法 54
2.8 设计举例 55
2.8.1 顺序表算法设计举例 55
2.8.2 单链表算法设计举例 56
习题2 60
第3章 堆栈和队列 63
3.1 堆栈 63
3.1.1 堆栈的基本概念 63
3.1.2 堆栈的抽象数据类型 65
3.1.3 顺序堆栈 65
3.1.4 链式堆栈 67
3.2.1 括号匹配问题 69
3.2 堆栈的应用 69
3.2.2 表达式计算问题 72
3.3 队列 76
3.3.1 队列的基本概念 76
3.3.2 队列的抽象数据类型 77
3.3.3 顺序队列 77
3.3.4 顺序循环队列类 80
3.3.5 链式队列 81
3.3.6 队列的应用 83
3.4 优先级队列 84
3.4.1 顺序优先级队列类 84
3.4.2 优先级队列的应用 87
习题3 88
4.1.1 串的基本概念 90
第4章 串 90
4.1 串的基本概念及其抽象数据类型 90
4.1.2 串的抽象数据类型 91
4.2 串的存储结构 92
4.3 串类 93
4.3.1 MyString类 93
4.3.2 MyString类的测试 98
4.3.3 MyStringBuffer类 99
4.3.4 MyStringBuffer类的测试 100
4.4 串的模式匹配算法 101
4.4.1 Brute-Force算法 101
4.4.2 KMP算法 103
4.4.3 Brute-Force算法和KMP算法的运行效率比较 108
习题4 110
5.1.1 数组的定义 112
第5章 数组、集合和矩阵 112
5.1 数组 112
5.1.2 数组的实现机制 113
5.1.3 数组的抽象数据类型 114
5.1.4 Java语言支持的数组功能 114
5.2 向量类 116
5.3 集合 119
5.3.1 集合的概念 119
5.3.2 集合抽象数据类型 120
5.3.3 集合类 120
5.4 矩阵类 124
5.5 特殊矩阵 128
5.5.1 特殊矩阵的压缩存储 128
5.5.2 n阶对称矩阵类 129
5.6 稀疏矩阵 131
5.6.1 稀疏矩阵的压缩存储 132
5.6.2 数组结构的稀疏矩阵类 132
5.6.3 三元组链表 136
习题5 138
第6章 递归算法 140
6.1 递归的概念 140
6.2 递归算法的执行过程 141
6.3 递归算法的设计方法 144
6.4 递归过程和运行时栈 146
6.5 递归算法的效率分析 149
6.6 递归算法到非递归算法的转换 150
6.7.1 一般递归函数设计举例 151
6.7 设计举例 151
6.7.2 回溯法及设计举例 154
习题6 158
第7章 树和二叉树 160
7.1 树 160
7.1.1 树的定义 160
7.1.2 树的表示方法 162
7.1.3 树的抽象数据类型 162
7.1.4 树的存储结构 163
7.2 二叉树 165
7.2.1 二叉树的定义 165
7.2.2 二叉树的抽象数据类型 166
7.2.3 二叉树的性质 167
7.2.4 二叉树的存储结构 168
7.3.1 二叉树的结点类 171
7.3 以结点类为基础的二叉树设计 171
7.3.2 二叉树的遍历 172
7.3.3 二叉树遍历的应用 175
7.3.4 应用举例 176
7.3.5 非递归的二叉树遍历算法 179
7.4 二叉树类 181
7.5 二叉树的分步遍历 183
7.5.1 二叉树游标类 183
7.5.2 二叉树中序游标类 185
7.5.3 二叉树层序游标类 188
7.6 线索二叉树 190
7.7 哈夫曼树 192
7.7.1 哈夫曼树的基本概念 192
7.7.2 哈夫曼编码问题 193
7.7.3 哈夫曼编码的软件设计 194
7.8 树与二叉树的转换 199
7.9 树的遍历 201
习题7 201
第8章 图 204
8.1 概述 204
8.1.1 图的基本概念 204
8.1.2 图的抽象数据类型 206
8.2 图的存储结构 207
8.2.1 图的邻接矩阵存储结构 207
8.2.2 图的邻接表存储结构 209
8.3邻接 矩阵图类 209
8.4.1 图的深度和广度优先遍历算法 214
8.4 图的遍历 214
8.4.2 图的深度和广度优先遍历成员函数的设计 215
8.5 最小生成树 218
8.5.1 最小生成树的基本概念 218
8.5.2 普里姆算法 219
8.5.3 克鲁斯卡尔算法 224
8.6 最短路径 226
8.6.1 最短路径的基本概念 226
8.6.2 从一个结点到其余各结点的最短路径 226
8.6.3 每对结点之间的最短路径 231
习题8 232
第9章 排序 234
9.1 排序的基本概念 234
9.2.1 直接插入排序 236
9.2 插入排序 236
9.2.2 希尔排序 238
9.3 选择排序 240
9.3.1 直接选择排序 240
9.3.2 堆排序 242
9.4 交换排序 246
9.4.1 冒泡排序 246
9.4.2 快速排序 247
9.5 归并排序 250
9.6 基数排序 252
9.7 各种排序算法的性能比较 255
习题9 255
10.1 查找的基本概念 257
第10章 查找 257
10.2 静态查找 258
10.2.1 在无序序列中查找 258
10.2.2 在有序序列中查找 259
10.2.3 索引 260
10.3 动态查找 263
10.3.1 二叉排序树 263
10.3.2 B树 275
习题10 279
第11章 哈希表 281
11.1 哈希表的基本概念 281
11.1.1 哈希表的基本构造方法 282
11.2 哈希函数构造方法 283
11.1.2 建立哈希表的关键问题 283
11.3 哈希冲突解决方法 285
11.3.1 开放定址法 285
11.3.2 链表法 286
11.4 哈希表类设计 286
11.4.1 哈希表项类 287
11.4.2 哈希表类 287
11.4.3 应用程序设计举例 289
习题11 291
附录A Java语言工具包实现的常用数据结构 292
附录B 上机实习内容规范和实习报告范例 295
B.1 上机实习内容规范 295
B.2 上机实习报告范例——约瑟夫环问题 295
附录C 部分习题解答 300
参考文献 313