注重体验与质量的电子书资源下载网站
分类于: 设计 编程语言
简介
目录
第1章 绪论 1
1.1 数据结构的基本概念 1
1.1.1 基本概念和术语 1
1.1.2 数据结构三要素 2
1.1.3 本节试题精选 3
1.1.4 答案与解析 4
1.2 算法和算法评价 5
1.2.1 算法的基本概念 5
1.2.2 算法效率的度量 6
1.2.3 本节试题精选 7
1.2.4 答案与解析 9
归纳总结 11
思维拓展 12
第2章 线性表 13
2.1 线性表的定义和基本操作 13
2.1.1 线性表的定义 13
2.1.2 线性表的基本操作 14
2.1.3 本节试题精选 14
2.1.4 答案与解析 14
2.2 线性表的顺序表示 15
2.2.1 顺序表的定义 15
2.2.2 顺序表上基本操作的实现 16
2.2.3 本节试题精选 17
2.2.4 答案与解析 21
2.3 线性表的链式表示 29
2.3.1 单链表的定义 29
2.3.2 单链表上基本操作的实现 29
2.3.3 双链表 33
2.3.4 循环链表 34
2.3.5 静态链表 35
2.3.6 顺序表和链表的比较 36
2.3.7 本节试题精选 37
2.3.8 答案与解析 44
归纳总结 63
思维拓展 63
第3章 栈和队列 64
3.1 栈 64
3.1.1 栈的基本概念 64
3.1.2 栈的顺序存储结构 65
3.1.3 栈的链式存储结构 67
3.1.4 本节试题精选 67
3.1.5 答案与解析 71
3.2 队列 77
3.2.1 队列的基本概念 77
3.2.2 队列的顺序存储结构 78
3.2.3 队列的链式存储结构 80
3.2.4 双端队列 81
3.2.5 本节试题精选 83
3.2.6 答案与解析 86
3.3 栈和队列的应用 91
3.3.1 栈在括号匹配中的应用 91
3.3.2 栈在表达式求值中的应用 92
3.3.3 栈在递归中的应用 92
3.3.4 队列在层次遍历中的应用 93
3.3.5 队列在计算机系统中的应用 94
3.3.6 本节试题精选 94
3.3.7 答案与解析 97
3.4 特殊矩阵的压缩存储 102
3.4.1 数组的定义 102
3.4.2 数组的存储结构 102
3.4.3 矩阵的压缩存储 103
3.4.4 稀疏矩阵 105
3.4.5 本节试题精选 105
3.4.6 答案与解析 106
归纳总结 108
思维拓展 108
第4章 串 109
4.1 串的定义和实现 109
4.1.1 串的定义 109
4.1.2 串的存储结构 110
4.1.3 串的基本操作 111
4.2 串的模式匹配 111
4.2.1 简单的模式匹配算法 111
4.2.2 改进的模式匹配算法――KMP算法 112
4.2.3 KMP算法的进一步优化 117
4.2.4 本节试题精选 118
4.2.5 答案与解析 119
归纳总结 123
思维拓展 123
第5章 树与二叉树 124
5.1 树的基本概念 124
5.1.1 树的定义 124
5.1.2 基本术语 125
5.1.3 树的性质 126
5.1.4 本节试题精选 126
5.1.5 答案与解析 127
5.2 二叉树的概念 128
5.2.1 二叉树的定义及其主要特性 128
5.2.2 二叉树的存储结构 130
5.2.3 本节试题精选 131
5.2.4 答案与解析 134
5.3 二叉树的遍历和线索二叉树 138
5.3.1 二叉树的遍历 138
5.3.2 线索二叉树 142
5.3.3 本节试题精选 145
5.3.4 答案与解析 152
5.4 树、森林 170
5.4.1 树的存储结构 170
5.4.2 树、森林与二叉树的转换 171
5.4.3 树和森林的遍历 172
5.4.4 树的应用――并查集 173
5.4.5 本节试题精选 174
5.4.6 答案与解析 177
5.5 树与二叉树的应用 182
5.5.1 二叉排序树(BST) 182
5.5.2 平衡二叉树 186
5.5.3 哈夫曼树和哈夫曼编码 189
5.5.4 本节试题精选 191
5.5.5 答案与解析 196
归纳总结 206
思维拓展 207
第6章 图 208
6.1 图的基本概念 208
6.1.1 图的定义 208
6.1.2 本节试题精选 211
6.1.3 答案与解析 214
6.2 图的存储及基本操作 216
6.2.1 邻接矩阵法 216
6.2.2 邻接表法 217
6.2.3 十字链表 218
6.2.4 邻接多重表 219
6.2.5 图的基本操作 220
6.2.6 本节试题精选 220
6.2.7 答案与解析 223
6.3 图的遍历 226
6.3.1 广度优先搜索 226
6.3.2 深度优先搜索 228
6.3.3 图的遍历与图的连通性 229
6.3.4 本节试题精选 230
6.3.5 答案与解析 233
6.4 图的应用 238
6.4.1 最小生成树 238
6.4.2 最短路径 240
6.4.3 有向无环图描述表达式 243
6.4.4 拓扑排序 244
6.4.5 关键路径 245
6.4.6 本节试题精选 247
6.4.7 答案与解析 256
归纳总结 268
思维拓展 269
第7章 查找 270
7.1 查找的基本概念 270
7.2 顺序查找和折半查找 271
7.2.1 顺序查找 271
7.2.2 折半查找 273
7.2.3 分块查找 274
7.2.4 本节试题精选 275
7.2.5 答案与解析 279
7.3 B树和B+树 284
7.3.1 B树及其基本操作 284
7.3.2 B+树的基本概念 287
7.3.3 本节试题精选 288
7.3.4 答案与解析 291
7.4 散列表 295
7.4.1 散列表的基本概念 295
7.4.2 散列函数的构造方法 295
7.4.3 处理冲突的方法 296
7.4.4 散列查找及性能分析 297
7.4.5 本节试题精选 298
7.4.6 答案与解析 302
归纳总结 307
思维拓展 307
第8章 排序 308
8.1 排序的基本概念 308
8.1.1 排序的定义 308
8.1.2 本节试题精选 309
8.1.3 答案与解析 310
8.2 插入排序 310
8.2.1 直接插入排序 310
8.2.2 折半插入排序 312
8.2.3 希尔排序 312
8.2.4 本节试题精选 313
8.2.5 答案与解析 316
8.3 交换排序 318
8.3.1 冒泡排序 318
8.3.2 快速排序 319
8.3.3 本节试题精选 321
8.3.4 答案与解析 324
8.4 选择排序 330
8.4.1 简单选择排序 330
8.4.2 堆排序 330
8.4.3 本节试题精选 333
8.4.4 答案与解析 335
8.5 归并排序和基数排序 339
8.5.1 归并排序 339
8.5.2 基数排序 340
8.5.3 本节试题精选 342
8.5.4 答案与解析 344
8.6 各种内部排序算法的比较及应用 346
8.6.1 内部排序算法的比较 346
8.6.2 内部排序算法的应用 347
8.6.3 本节试题精选 348
8.6.4 答案与解析 350
8.7 外部排序 353
8.7.1 外部排序的基本概念 353
8.7.2 外部排序的方法 353
8.7.3 多路平衡归并与败者树 354
8.7.4 置换-选择排序(生成初始归并段) 355
8.7.5 最佳归并树 356
8.7.6 本节试题精选 357
8.7.7 答案与解析 359
归纳总结 361
思维拓展 362
参考文献 363
1.1 数据结构的基本概念 1
1.1.1 基本概念和术语 1
1.1.2 数据结构三要素 2
1.1.3 本节试题精选 3
1.1.4 答案与解析 4
1.2 算法和算法评价 5
1.2.1 算法的基本概念 5
1.2.2 算法效率的度量 6
1.2.3 本节试题精选 7
1.2.4 答案与解析 9
归纳总结 11
思维拓展 12
第2章 线性表 13
2.1 线性表的定义和基本操作 13
2.1.1 线性表的定义 13
2.1.2 线性表的基本操作 14
2.1.3 本节试题精选 14
2.1.4 答案与解析 14
2.2 线性表的顺序表示 15
2.2.1 顺序表的定义 15
2.2.2 顺序表上基本操作的实现 16
2.2.3 本节试题精选 17
2.2.4 答案与解析 21
2.3 线性表的链式表示 29
2.3.1 单链表的定义 29
2.3.2 单链表上基本操作的实现 29
2.3.3 双链表 33
2.3.4 循环链表 34
2.3.5 静态链表 35
2.3.6 顺序表和链表的比较 36
2.3.7 本节试题精选 37
2.3.8 答案与解析 44
归纳总结 63
思维拓展 63
第3章 栈和队列 64
3.1 栈 64
3.1.1 栈的基本概念 64
3.1.2 栈的顺序存储结构 65
3.1.3 栈的链式存储结构 67
3.1.4 本节试题精选 67
3.1.5 答案与解析 71
3.2 队列 77
3.2.1 队列的基本概念 77
3.2.2 队列的顺序存储结构 78
3.2.3 队列的链式存储结构 80
3.2.4 双端队列 81
3.2.5 本节试题精选 83
3.2.6 答案与解析 86
3.3 栈和队列的应用 91
3.3.1 栈在括号匹配中的应用 91
3.3.2 栈在表达式求值中的应用 92
3.3.3 栈在递归中的应用 92
3.3.4 队列在层次遍历中的应用 93
3.3.5 队列在计算机系统中的应用 94
3.3.6 本节试题精选 94
3.3.7 答案与解析 97
3.4 特殊矩阵的压缩存储 102
3.4.1 数组的定义 102
3.4.2 数组的存储结构 102
3.4.3 矩阵的压缩存储 103
3.4.4 稀疏矩阵 105
3.4.5 本节试题精选 105
3.4.6 答案与解析 106
归纳总结 108
思维拓展 108
第4章 串 109
4.1 串的定义和实现 109
4.1.1 串的定义 109
4.1.2 串的存储结构 110
4.1.3 串的基本操作 111
4.2 串的模式匹配 111
4.2.1 简单的模式匹配算法 111
4.2.2 改进的模式匹配算法――KMP算法 112
4.2.3 KMP算法的进一步优化 117
4.2.4 本节试题精选 118
4.2.5 答案与解析 119
归纳总结 123
思维拓展 123
第5章 树与二叉树 124
5.1 树的基本概念 124
5.1.1 树的定义 124
5.1.2 基本术语 125
5.1.3 树的性质 126
5.1.4 本节试题精选 126
5.1.5 答案与解析 127
5.2 二叉树的概念 128
5.2.1 二叉树的定义及其主要特性 128
5.2.2 二叉树的存储结构 130
5.2.3 本节试题精选 131
5.2.4 答案与解析 134
5.3 二叉树的遍历和线索二叉树 138
5.3.1 二叉树的遍历 138
5.3.2 线索二叉树 142
5.3.3 本节试题精选 145
5.3.4 答案与解析 152
5.4 树、森林 170
5.4.1 树的存储结构 170
5.4.2 树、森林与二叉树的转换 171
5.4.3 树和森林的遍历 172
5.4.4 树的应用――并查集 173
5.4.5 本节试题精选 174
5.4.6 答案与解析 177
5.5 树与二叉树的应用 182
5.5.1 二叉排序树(BST) 182
5.5.2 平衡二叉树 186
5.5.3 哈夫曼树和哈夫曼编码 189
5.5.4 本节试题精选 191
5.5.5 答案与解析 196
归纳总结 206
思维拓展 207
第6章 图 208
6.1 图的基本概念 208
6.1.1 图的定义 208
6.1.2 本节试题精选 211
6.1.3 答案与解析 214
6.2 图的存储及基本操作 216
6.2.1 邻接矩阵法 216
6.2.2 邻接表法 217
6.2.3 十字链表 218
6.2.4 邻接多重表 219
6.2.5 图的基本操作 220
6.2.6 本节试题精选 220
6.2.7 答案与解析 223
6.3 图的遍历 226
6.3.1 广度优先搜索 226
6.3.2 深度优先搜索 228
6.3.3 图的遍历与图的连通性 229
6.3.4 本节试题精选 230
6.3.5 答案与解析 233
6.4 图的应用 238
6.4.1 最小生成树 238
6.4.2 最短路径 240
6.4.3 有向无环图描述表达式 243
6.4.4 拓扑排序 244
6.4.5 关键路径 245
6.4.6 本节试题精选 247
6.4.7 答案与解析 256
归纳总结 268
思维拓展 269
第7章 查找 270
7.1 查找的基本概念 270
7.2 顺序查找和折半查找 271
7.2.1 顺序查找 271
7.2.2 折半查找 273
7.2.3 分块查找 274
7.2.4 本节试题精选 275
7.2.5 答案与解析 279
7.3 B树和B+树 284
7.3.1 B树及其基本操作 284
7.3.2 B+树的基本概念 287
7.3.3 本节试题精选 288
7.3.4 答案与解析 291
7.4 散列表 295
7.4.1 散列表的基本概念 295
7.4.2 散列函数的构造方法 295
7.4.3 处理冲突的方法 296
7.4.4 散列查找及性能分析 297
7.4.5 本节试题精选 298
7.4.6 答案与解析 302
归纳总结 307
思维拓展 307
第8章 排序 308
8.1 排序的基本概念 308
8.1.1 排序的定义 308
8.1.2 本节试题精选 309
8.1.3 答案与解析 310
8.2 插入排序 310
8.2.1 直接插入排序 310
8.2.2 折半插入排序 312
8.2.3 希尔排序 312
8.2.4 本节试题精选 313
8.2.5 答案与解析 316
8.3 交换排序 318
8.3.1 冒泡排序 318
8.3.2 快速排序 319
8.3.3 本节试题精选 321
8.3.4 答案与解析 324
8.4 选择排序 330
8.4.1 简单选择排序 330
8.4.2 堆排序 330
8.4.3 本节试题精选 333
8.4.4 答案与解析 335
8.5 归并排序和基数排序 339
8.5.1 归并排序 339
8.5.2 基数排序 340
8.5.3 本节试题精选 342
8.5.4 答案与解析 344
8.6 各种内部排序算法的比较及应用 346
8.6.1 内部排序算法的比较 346
8.6.2 内部排序算法的应用 347
8.6.3 本节试题精选 348
8.6.4 答案与解析 350
8.7 外部排序 353
8.7.1 外部排序的基本概念 353
8.7.2 外部排序的方法 353
8.7.3 多路平衡归并与败者树 354
8.7.4 置换-选择排序(生成初始归并段) 355
8.7.5 最佳归并树 356
8.7.6 本节试题精选 357
8.7.7 答案与解析 359
归纳总结 361
思维拓展 362
参考文献 363