微信扫一扫,移动浏览光盘
简介
《数据结构(C++版)》采用面向对象的观点讨论数据结构技术,从数据结构的基础知识讲起,循序渐进地讲解,且设置了大量的典型应用实例与算法设计。《数据结构(C++版)》主要内容包括数据结构基础知识,线性表,栈和队列,串,数组和广义表,树与二叉树,图,查找,排序,递归,文件,以及实习题与实习指导。《数据结构(C++版)》注重内容的实用性,既可作为工程型、应用型高等院校计算机专业数据结构课程的教材,也可作为自学数据结构的教材和参考书。光盘中附有VC++程序设计方面的54小节长达156分钟的高清晰视频教学课程,以便读者了解VC++环境,利用c++语言实现数据结构的各类对象,进一步提高编程能力。
目录
第1章 绪论. 1
1.1 数据结构概述 1
1.1.1 数据结构的重要性 1
1.1.2 有关概念和术语 4
1.1.3 数据结构课程的内容 5
1.2 面向对象技术 6
1.2.1 面向对象技术概述 6
1.2.2 c++基本概念 7
1.2.3 c++中的类和对象 10
1.2.4 c++模板与设计模式 17
1.3 数据和数据类型 23
1.3.1 抽象数据类型 24
1.3.2 数据结构的概念 24
1.3.3 数据的逻辑结构 25
1.3.4 数据的存储结构 25
1.3.5 数据的运算 26
1.3.6 数据的逻辑结构、存储结构及数据的运算的关系 27
1.4 算法和算法分析 28
1.4.1 算法 28
1.4.2 算法描述 28
.1.4.3 算法性能分析与度量 29
1.5 小结与提高 30
1.6 思考与练习 30
第2章 线性表 31
2.1 线性表及其抽象数据类型说明 31
2.1.1 线性表及其逻辑结构 31
2.1.2 线性表的基本操作 32
2.1.3 线性表的抽象数据类型描述 33
2.2 线性表的顺序存储及运算实现 33
2.2.1 顺序表及顺序存储 33
2.2.2 顺序表类的定义 35
2.2.3 顺序表上基本运算的实现 36
2.2.4 顺序表应用举例 41
2.3 线性表的链式存储和运算实现 44
2.3.1 线性链表的存储结构 44
2.3.2 线性链表类的定义 46
2.3.3 线性链表的实现 47
2.4 循环链表 55
2.5 双向链表 61
2.6 可利用空间表 67
2.7 线性表的顺序存储和链式存储的比较 68
2.8 链式存储结构的应用 69
2.8.1 约瑟夫问题 69
2.8.2 一元多项式求和 73
2.9 小结与提高 77
2.10 思考与练习 77
第3章 栈和队列 79
3.1 栈 79
3.1.1 栈的定义 79
3.1.2 栈的顺序存储结构 81
3.1.3 栈的链式存储结构 85
3.1.4 顺序栈和链栈的比较 87
3.2 栈的应用 87
3.2.1 表达式求值 87
3.2.2 进制转换 93
3.2.3 火车调度 94
3.3 队列 95
3.3.1 队列的定义 95
3.3.2 队列的顺序存储结构 97
3.3.3 队列的链式存储结构 99
3.3.4 顺序队列与链式队列的比较 101
3.3.5 优先队列 103
3.4 队列的应用 104
3.4.1 基数排序法 104
3.4.2 火车车厢重排 106
3.5 双端队列 108
3.5.1 双端队列的定义 108
3.5.2 双端队列的操作 109
3.5.3 双端队列的应用 109
3.6 小结与提高 110
3.7 思考与练习 110
第4章 串 112
4.1 串类型的定义 112
4.2 串的存储结构 114
4.2.1 串的顺序存储结构 114
4.2.2 串的链式存储结构 115
4.3 串的操作 115
4.3.1 常用的c++字符串函数 115
4.3.2 串的抽象数据类型的描述 116
4.4 模式匹配 118
4.4.1 模式匹配的bf算法 118
4.4.2 模式匹配的kmp算法 119
4.5 串应用 123
4.5.1 在文本编辑中的应用 123
4.5.2 建立关键字索引 127
4.6 小结与提高 129
4.7 思考与练习 129
第5章 数组和广义表 130
5.1 数组的定义及抽象数据类型表示 130
5.1.1 c++中数组的定义 130
5.1.2 数组的抽象数据类型表示 131
5.1.3 数组的顺序存储结构 131
5.2 矩阵的压缩存储 133
5.2.1 特殊矩阵的压缩存储 133
5.2.2 稀疏矩阵的压缩存储 136
5.3 广义表 141
5.3.1 广义表的概念 141
5.3.2 广义表的存储结构 142
5.3.3 广义表的操作 144
5.4 小结与提高 147
5.5 思考与练习 147
第6章 树与二叉树 149
6.1 树的基本概念 149
6.1.1 树的定义和常用术语 149
6.1.2 树的抽象数据类型 152
6.1.3 树的遍历操作 153
6.2 二叉树 154
6.2.1 二叉树的定义 154
6.2.2 二叉树的性质 156
6.2.3 二叉树的存储结构.. 158
6.2.4 二叉树的遍历 160
6.2.5 二叉树遍历的应用 165
6.3 线索二叉树 166
6.3.1 线索二叉树的类定义 166
6.3.2 中序线索二叉树 166
6.4 树、森林和二叉树的关系 169
6.4.1 树的存储结构 169
6.4.2 树、森林与二叉树的转换 174
6.4.3 森林的遍历 177
6.5 哈夫曼树及其应用 177
6.5.1 哈夫曼树的定义 177
6.5.2 哈夫曼树的构造 179
6.5.3 哈夫曼树在编码问题中的应用 181
6.6 小结与提高 182
6.7 思考与练习 182
第7章 图 184
7.1 图的基本概念 184
7.1.1 图的定义及基本概念 184
7.1.2 图的抽象数据类型 188
7.2 图的存储结构 189
7.2.1 邻接矩阵表示法 189
7.2.2 邻接表 190
7.3 图的遍历 193
7.3.1 深度优先搜索 193
7.3.2 广度优先搜索 195
7.4 图的连通性 196
7.4.1 无向图的连通分量 196
7.4.2 有向图的强连通分量 196
7.5 生成树 197
7.5.1 构造生成树 197
7.5.2 最小生成树 198
7.5.3 普里姆算法 198
7.5.4 克鲁斯卡尔算法 200
7.6 最短路径 202
7.6.1 单源最短路径 203
7.6.2 每一对顶点之间的最短路径 204
7.7 拓扑排序 205
7.8 关键路径 207
7.9 小结与提高 210
7.10 思考与练习 210
第8章 查找 213
8.1 基本概念 213
8.2 线性表的查找 214
8.2.1 顺序查找 214
8.2.2 折半查找 216
8.2.3 索引查找 219
8.2.4 分块查找 220
8.3 树表的查找 221
8.3.1 二叉查找树 222
8.3.2 平衡二叉树 228
8.3.3 b-树 236
8.4 哈希表的查找 242
8.4.1 哈希表 242
8.4.2 构造哈希函数的基本方法 243
8.4.3 解决冲突的方法 245
8.4.4 哈希表的查找方法 249
8.5 各种查找方法的比较 250
8.6 小结与提高 252
8.7 思考与练习 252
第9章 排序 254
9.1 基本概念 254
9.2 内部排序 256
9.2.1 插入排序 256
9.2.2 交换排序 259
9.2.3 选择排序 263
9.2.4 归并排序 264
9.2.5 基数排序 266
9.3 内部排序方法比较 268
9.4 外部排序 269
9.4.1 外部排序的简单方法 269
9.4.2 两路归并 270
9.4.3 多路归并 271
9.5 小结与提高 272
9.6 思考与练习 272
第10章 递归 273
10.1 递归的定义 273
10.2 常见递归问题 274
10.2.1 汉诺塔问题 274
10.2.2 八皇后问题 276
10.2.3 表达式树 278
10.3 递归的实现 282
10.4 消除递归 284
10.4.1 尾递归和单向递归的消除 284
10.4.2 用栈模拟系统运行时的栈 286
10.5 递归的评估 288
10.6 小结与提高 289
10.7 思考与练习 290
第11章 文件 291
11.1 外存储器的介绍 291
11.2 磁盘 292
11.3 有关文件的概念 293
11.3.1 文件及其类别 293
11.3.2 文件的操作 294
11.4 文件的组织 294
11.4.1 顺序文件 294
11.4.2 索引文件 297
11.4.3 散列文件 299
11.4.4 多关键字文件 300
11.5 文件的索引结构 303
11.6 小结与提高 305
11.7 思考与练习 306
第12章 实习题与实习指导 307
12.1 实习的目的和要求 307
12.2 实习步骤 308
12.3 实习报告和样例 309
12.3.1 实习报告 309
12.3.2 实习样例一 310
12.3.3 实习样例二 320
12.4 实习题 328
12.4.1 实习题一 c++类及模板的使用 328
12.4.2 实习题二 含并、交和差运算的集合类型 329
12.4.3 实习题三 用回溯法求解“稳定婚配”问题 330
12.4.4 实习题四 最佳任务分配方案求解 331
12.4.5 实习题五 以队列实现的仿真技术预测理发馆的经营状况 332
12.4.6 实习题六 利用树形结构的搜索算法模拟因特网域名的查询 333
12.4.7 实习题七 汽车牌照的快速查找 334
12.4.8 实习题八 旅游最佳路线的选择 335
12.4.9 实习题九 教务课程计划的辅助制定 336
附录a ascii字符集 338
附录b 数制系统 341
主要参考文献... 343
1.1 数据结构概述 1
1.1.1 数据结构的重要性 1
1.1.2 有关概念和术语 4
1.1.3 数据结构课程的内容 5
1.2 面向对象技术 6
1.2.1 面向对象技术概述 6
1.2.2 c++基本概念 7
1.2.3 c++中的类和对象 10
1.2.4 c++模板与设计模式 17
1.3 数据和数据类型 23
1.3.1 抽象数据类型 24
1.3.2 数据结构的概念 24
1.3.3 数据的逻辑结构 25
1.3.4 数据的存储结构 25
1.3.5 数据的运算 26
1.3.6 数据的逻辑结构、存储结构及数据的运算的关系 27
1.4 算法和算法分析 28
1.4.1 算法 28
1.4.2 算法描述 28
.1.4.3 算法性能分析与度量 29
1.5 小结与提高 30
1.6 思考与练习 30
第2章 线性表 31
2.1 线性表及其抽象数据类型说明 31
2.1.1 线性表及其逻辑结构 31
2.1.2 线性表的基本操作 32
2.1.3 线性表的抽象数据类型描述 33
2.2 线性表的顺序存储及运算实现 33
2.2.1 顺序表及顺序存储 33
2.2.2 顺序表类的定义 35
2.2.3 顺序表上基本运算的实现 36
2.2.4 顺序表应用举例 41
2.3 线性表的链式存储和运算实现 44
2.3.1 线性链表的存储结构 44
2.3.2 线性链表类的定义 46
2.3.3 线性链表的实现 47
2.4 循环链表 55
2.5 双向链表 61
2.6 可利用空间表 67
2.7 线性表的顺序存储和链式存储的比较 68
2.8 链式存储结构的应用 69
2.8.1 约瑟夫问题 69
2.8.2 一元多项式求和 73
2.9 小结与提高 77
2.10 思考与练习 77
第3章 栈和队列 79
3.1 栈 79
3.1.1 栈的定义 79
3.1.2 栈的顺序存储结构 81
3.1.3 栈的链式存储结构 85
3.1.4 顺序栈和链栈的比较 87
3.2 栈的应用 87
3.2.1 表达式求值 87
3.2.2 进制转换 93
3.2.3 火车调度 94
3.3 队列 95
3.3.1 队列的定义 95
3.3.2 队列的顺序存储结构 97
3.3.3 队列的链式存储结构 99
3.3.4 顺序队列与链式队列的比较 101
3.3.5 优先队列 103
3.4 队列的应用 104
3.4.1 基数排序法 104
3.4.2 火车车厢重排 106
3.5 双端队列 108
3.5.1 双端队列的定义 108
3.5.2 双端队列的操作 109
3.5.3 双端队列的应用 109
3.6 小结与提高 110
3.7 思考与练习 110
第4章 串 112
4.1 串类型的定义 112
4.2 串的存储结构 114
4.2.1 串的顺序存储结构 114
4.2.2 串的链式存储结构 115
4.3 串的操作 115
4.3.1 常用的c++字符串函数 115
4.3.2 串的抽象数据类型的描述 116
4.4 模式匹配 118
4.4.1 模式匹配的bf算法 118
4.4.2 模式匹配的kmp算法 119
4.5 串应用 123
4.5.1 在文本编辑中的应用 123
4.5.2 建立关键字索引 127
4.6 小结与提高 129
4.7 思考与练习 129
第5章 数组和广义表 130
5.1 数组的定义及抽象数据类型表示 130
5.1.1 c++中数组的定义 130
5.1.2 数组的抽象数据类型表示 131
5.1.3 数组的顺序存储结构 131
5.2 矩阵的压缩存储 133
5.2.1 特殊矩阵的压缩存储 133
5.2.2 稀疏矩阵的压缩存储 136
5.3 广义表 141
5.3.1 广义表的概念 141
5.3.2 广义表的存储结构 142
5.3.3 广义表的操作 144
5.4 小结与提高 147
5.5 思考与练习 147
第6章 树与二叉树 149
6.1 树的基本概念 149
6.1.1 树的定义和常用术语 149
6.1.2 树的抽象数据类型 152
6.1.3 树的遍历操作 153
6.2 二叉树 154
6.2.1 二叉树的定义 154
6.2.2 二叉树的性质 156
6.2.3 二叉树的存储结构.. 158
6.2.4 二叉树的遍历 160
6.2.5 二叉树遍历的应用 165
6.3 线索二叉树 166
6.3.1 线索二叉树的类定义 166
6.3.2 中序线索二叉树 166
6.4 树、森林和二叉树的关系 169
6.4.1 树的存储结构 169
6.4.2 树、森林与二叉树的转换 174
6.4.3 森林的遍历 177
6.5 哈夫曼树及其应用 177
6.5.1 哈夫曼树的定义 177
6.5.2 哈夫曼树的构造 179
6.5.3 哈夫曼树在编码问题中的应用 181
6.6 小结与提高 182
6.7 思考与练习 182
第7章 图 184
7.1 图的基本概念 184
7.1.1 图的定义及基本概念 184
7.1.2 图的抽象数据类型 188
7.2 图的存储结构 189
7.2.1 邻接矩阵表示法 189
7.2.2 邻接表 190
7.3 图的遍历 193
7.3.1 深度优先搜索 193
7.3.2 广度优先搜索 195
7.4 图的连通性 196
7.4.1 无向图的连通分量 196
7.4.2 有向图的强连通分量 196
7.5 生成树 197
7.5.1 构造生成树 197
7.5.2 最小生成树 198
7.5.3 普里姆算法 198
7.5.4 克鲁斯卡尔算法 200
7.6 最短路径 202
7.6.1 单源最短路径 203
7.6.2 每一对顶点之间的最短路径 204
7.7 拓扑排序 205
7.8 关键路径 207
7.9 小结与提高 210
7.10 思考与练习 210
第8章 查找 213
8.1 基本概念 213
8.2 线性表的查找 214
8.2.1 顺序查找 214
8.2.2 折半查找 216
8.2.3 索引查找 219
8.2.4 分块查找 220
8.3 树表的查找 221
8.3.1 二叉查找树 222
8.3.2 平衡二叉树 228
8.3.3 b-树 236
8.4 哈希表的查找 242
8.4.1 哈希表 242
8.4.2 构造哈希函数的基本方法 243
8.4.3 解决冲突的方法 245
8.4.4 哈希表的查找方法 249
8.5 各种查找方法的比较 250
8.6 小结与提高 252
8.7 思考与练习 252
第9章 排序 254
9.1 基本概念 254
9.2 内部排序 256
9.2.1 插入排序 256
9.2.2 交换排序 259
9.2.3 选择排序 263
9.2.4 归并排序 264
9.2.5 基数排序 266
9.3 内部排序方法比较 268
9.4 外部排序 269
9.4.1 外部排序的简单方法 269
9.4.2 两路归并 270
9.4.3 多路归并 271
9.5 小结与提高 272
9.6 思考与练习 272
第10章 递归 273
10.1 递归的定义 273
10.2 常见递归问题 274
10.2.1 汉诺塔问题 274
10.2.2 八皇后问题 276
10.2.3 表达式树 278
10.3 递归的实现 282
10.4 消除递归 284
10.4.1 尾递归和单向递归的消除 284
10.4.2 用栈模拟系统运行时的栈 286
10.5 递归的评估 288
10.6 小结与提高 289
10.7 思考与练习 290
第11章 文件 291
11.1 外存储器的介绍 291
11.2 磁盘 292
11.3 有关文件的概念 293
11.3.1 文件及其类别 293
11.3.2 文件的操作 294
11.4 文件的组织 294
11.4.1 顺序文件 294
11.4.2 索引文件 297
11.4.3 散列文件 299
11.4.4 多关键字文件 300
11.5 文件的索引结构 303
11.6 小结与提高 305
11.7 思考与练习 306
第12章 实习题与实习指导 307
12.1 实习的目的和要求 307
12.2 实习步骤 308
12.3 实习报告和样例 309
12.3.1 实习报告 309
12.3.2 实习样例一 310
12.3.3 实习样例二 320
12.4 实习题 328
12.4.1 实习题一 c++类及模板的使用 328
12.4.2 实习题二 含并、交和差运算的集合类型 329
12.4.3 实习题三 用回溯法求解“稳定婚配”问题 330
12.4.4 实习题四 最佳任务分配方案求解 331
12.4.5 实习题五 以队列实现的仿真技术预测理发馆的经营状况 332
12.4.6 实习题六 利用树形结构的搜索算法模拟因特网域名的查询 333
12.4.7 实习题七 汽车牌照的快速查找 334
12.4.8 实习题八 旅游最佳路线的选择 335
12.4.9 实习题九 教务课程计划的辅助制定 336
附录a ascii字符集 338
附录b 数制系统 341
主要参考文献... 343
题名取自题名屏幕
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!