图书介绍
数据结构教程pdf电子书版本下载
- 唐发根编著 著
- 出版社: 北京:北京航空航天大学出版社
- ISBN:9787512424326
- 出版时间:2017
- 标注页数:393页
- 文件大小:66MB
- 文件页数:405页
- 主题词:数据结构-高等学校-教材
PDF下载
下载说明
数据结构教程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 绪论 1
1.1 什么是数据结构 1
1.2 数据结构的发展简史及其在计算机科学中的地位 4
1.3 算法 5
1.3.1 算法及其性质 5
1.3.2 基本算法 6
1.3.3 算法的描述 7
1.4 算法分析 10
1.4.1 时间复杂度 11
1.4.2 空间复杂度 13
1.4.3 其他方面 14
习题 14
第2章 线性表 19
2.1 线性表的定义及其基本操作 19
2.1.1 线性表的定义 19
2.1.2 线性表的基本操作 20
2.2 线性表的顺序存储结构 21
2.2.1 顺序存储结构的构造 21
2.2.2 几种常见操作的实现 22
2.2.3 顺序存储结构小结 28
2.3 线性链表及其操作 28
2.3.1 线性链表的构造 29
2.3.2 线性链表的基本算法 31
2.4 循环链表及其操作 45
2.5 双向链表及其操作 47
2.5.1 双向链表的构造 48
2.5.2 双向链表的插入与删除算法 49
2.6 链表的应用举例 51
2.6.1 链式存储结构下的一元多项式相加 51
2.6.2 打印文本文件的最后n行 54
习题 56
第3章 数组 63
3.1 数组的概念 63
3.2 数组的存储结构 63
3.3 矩阵的压缩存储 65
3.3.1 对称矩阵的压缩存储 65
3.3.2 对角矩阵的压缩存储 66
3.4 稀疏矩阵的三元组表表示 67
3.4.1 稀疏矩阵的三元组表存储方法 67
3.4.2 稀疏矩阵的转置算法 68
3.4.3 稀疏矩阵的相加算法 70
3.4.4 稀疏矩阵的相乘算法 72
3.5 稀疏矩阵的链表表示 74
3.5.1 线性链表存储方法 74
3.5.2 带行指针向量的链表存储方法 75
3.5.3 十字链表存储方法 75
3.6 数组的应用举例 79
3.6.1 一元多项式的数组表示 79
3.6.2 n阶魔方 80
习题 82
第4章 堆栈和队列 85
4.1 堆栈的概念及其操作 85
4.1.1 堆栈的定义 85
4.1.2 堆栈的基本操作 86
4.2 堆栈的顺序存储结构 86
4.2.1 顺序堆栈的构造 87
4.2.2 顺序堆栈的基本算法 87
4.2.3 多个堆栈共享连续空间 89
4.3 堆栈的链式存储结构 92
4.3.1 链接堆栈的构造 92
4.3.2 链接堆栈的基本算法 93
4.4 堆栈的应用举例 95
4.4.1 符号匹配检查 95
4.4.2 数制转换 95
4.4.3 堆栈在递归中的应用 96
4.4.4 表达式的计算 101
4.4.5 趣味游戏——迷宫 104
4.5 队列的概念及其操作 107
4.5.1 队列的定义 107
4.5.2 队列的基本操作 108
4.6 队列的顺序存储结构 108
4.6.1 顺序队列的构造 108
4.6.2 顺序队列的基本算法 109
4.6.3 循环队列 111
4.7 队列的链式存储结构 113
4.7.1 链接队列的构造 113
4.7.2 链接队列的基本算法 114
习题 117
第5章 广义表 122
5.1 广义表的基本概念 122
5.2 广义表的存储结构 123
5.3 多元多项式的表示 126
习题 128
第6章 串 130
6.1 串的基本概念 130
6.1.1 串的定义 130
6.1.2 串的几个概念 131
6.2 串的基本操作 131
6.3 串的存储结构 133
6.3.1 串的顺序存储结构 133
6.3.2 串的链式存储结构 134
6.4 串的几个操作 135
习题 140
第7章 树与二叉树 142
7.1 树的基本概念 142
7.1.1 树的定义 142
7.1.2 树的逻辑表示方法 144
7.1.3 基本术语 145
7.1.4 树的性质 146
7.1.5 树的基本操作 147
7.2 树的存储结构 148
7.2.1 多重链表表示法 148
7.2.2 三重链表表示法 149
7.3 二叉树 150
7.3.1 二叉树的定义 150
7.3.2 二叉树的基本操作 151
7.3.3 两种特殊形态的二叉树 151
7.3.4 二叉树的性质 152
7.3.5 二叉树与树、树林之间的转换 154
7.4 二叉树的存储结构 156
7.4.1 二叉树的顺序存储结构 156
7.4.2 二叉树的链式存储结构 158
7.5 二叉树与树的遍历 163
7.5.1 二叉树的遍历 163
7.5.2 由遍历序列恢复二叉树 170
7.5.3 二叉树的等价性 172
7.5.4 树和树林的遍历 173
7.5.5 基于二叉树遍历操作的算法举例 174
7.6 线索二叉树 179
7.6.1 线索二叉树的构造 180
7.6.2 线索二叉树的利用 181
7.6.3 二叉树的线索化 183
7.6.4 线索二叉树的更新 184
7.7 二叉排序树 185
7.7.1 二叉排序树的定义 185
7.7.2 二叉排序树的建立(插入) 186
7.7.3 在二叉排序树中删除结点 188
7.7.4 二叉排序树的查找 191
7.8 平衡二叉树 193
7.9 哈夫曼树及其应用 199
7.9.1 哈夫曼树(Huffman)的概念 199
7.9.2 哈夫曼编码 200
习题 203
第8章 图 209
8.1 图的基本概念 209
8.1.1 图的定义和基本术语 209
8.1.2 图的基本操作 213
8.2 图的存储方法 213
8.2.1 邻接矩阵存储方法 214
8.2.2 邻接表存储方法 215
8.2.3 有向图的十字链表存储方法 219
8.2.4 无向图的多重邻接表存储方法 220
8.3 图的遍历 221
8.3.1 深度优先搜索 221
8.3.2 广度优先搜索 224
8.3.3 连通分量 225
8.4 最小生成树 226
8.4.1 普里姆算法 227
8.4.2 克鲁斯卡尔算法 230
8.5 最短路径 231
8.6 AOV网与拓扑排序 235
8.6.1 AOV网 235
8.6.2 拓扑排序 236
8.6.3 拓扑排序算法 237
8.7 AOE网与关键路径 241
8.7.1 AOE网 241
8.7.2 关键路径 242
8.7.3 关键路径的确定 243
习题 247
第9章 文件及查找 253
9.1 文件概述 253
9.1.1 文件的基本概念 253
9.1.2 文件的存储介质 255
9.1.3 文件的基本操作 256
9.2 顺序文件 258
9.2.1 连续顺序文件及其查找 258
9.2.2 链接顺序文件及其查找 262
9.3 索引文件 262
9.3.1 稠密索引文件 262
9.3.2 非稠密索引分块文件 263
9.3.3 多级索引文件 264
9.4 B-树和B+树 266
9.4.1 B-树的基本概念 266
9.4.2 B-树的基本操作 267
9.4.3 B+树的基本概念 272
9.4.4 B+树的基本操作 273
9.5 散列(hash)文件 273
9.5.1 概述 273
9.5.2 散列函数的几种常见构造方法 275
9.5.3 处理冲突的方法 278
9.5.4 散列文件的操作 281
9.5.5 散列法的平均查找长度 284
习题 285
第10章 内排序 290
10.1 概述 290
10.1.1 排序的基本概念 290
10.1.2 排序的分类 291
10.2 插入排序 292
10.3 选择排序 295
10.4 泡排序 296
10.5 谢尔排序 298
10.6 快速排序 300
10.7 堆积排序 303
10.7.1 堆积的定义 303
10.7.2 堆积排序算法 304
10.8 二路归并排序 308
10.8.1 归并子算法 308
10.8.2 一趟归并扫描子算法 309
10.8.3 二路归并排序算法 310
10.9 基数排序 311
10.10 各种内排序方法的比较 314
10.10.1 稳定性比较 315
10.10.2 复杂性比较 315
习题 316
第11章 外排序 321
11.1 概述 321
11.2 磁带排序 322
11.2.1 多路平衡归并排序法 322
11.2.2 多步归并排序 324
11.3 初始归并段的合理分布与产生 325
11.3.1 初始归并段的合理分布 325
11.3.2 一种产生初始归并段的方法——置换选择排序 326
11.4 磁盘排序 328
习题 330
习题答案 332
参考文献 393