图书介绍
数据结构与算法 C++语言描述 第2版PDF|Epub|txt|kindle电子书版本网盘下载
![数据结构与算法 C++语言描述 第2版](https://www.shukui.net/cover/68/34558499.jpg)
- 陈明编著 著
- 出版社: 北京:北京师范大学出版社
- ISBN:9787303228126
- 出版时间:2017
- 标注页数:366页
- 文件大小:63MB
- 文件页数:382页
- 主题词:数据结构-高等学校-教材;算法分析-高等学校-教材;C++语言-程序设计-高等学校-教材
PDF下载
下载说明
数据结构与算法 C++语言描述 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1 问题的提出1
1.2 面向对象程序设计2
1.2.1 面向对象方法2
1.2.2 C++语言简介3
1.3 数据结构的基本术语4
1.4 抽象数据类型6
1.4.1 抽象数据类型定义6
1.4.2 抽象数据类型ADT描述规范7
1.5 数据结构的组织形式8
1.6 数据的逻辑结构10
1.7 数据的存储结构12
1.8 数据运算13
1.9 数据的逻辑结构、存储结构及数据运算的关系14
小结14
习题115
第2章 算法分析基础16
2.1 算法相关概念16
2.1.1 算法及其特性16
2.1.2 算法的描述17
2.2 算法分析的概念与算法复杂度17
2.2.1 算法分析的概念18
2.2.2 算法复杂度20
2.3 最大连续子序列之和问题22
2.3.1 简单的O(N3)算法23
2.3.2 改进的O(N2)算法24
2.4 静态搜索问题25
2.4.1 顺序搜索25
2.4.2 二分搜索26
小结28
习题228
第3章 线性表31
3.1 线性表及其抽象数据类型31
3.1.1 线性表及逻辑结构31
3.1.2 线性表的抽象数据类型描述35
3.2 线性表的顺序存储36
3.2.1 顺序存储36
3.2.2 顺序表的定义37
3.2.3 顺序表类的实现38
3.3 线性表的链式存储41
3.3.1 线性链表的存储结构41
3.3.2 线性链表类的定义43
3.3.3 线性链表类的实现44
3.3.4 循环链表48
3.3.5 循环链表类的实现49
3.3.6 双向链表50
3.3.7 可利用空间表52
3.3.8 表遍历器53
3.4 线性表的顺序存储和链式存储的比较55
3.5 链式存储结构的应用56
3.5.1 约瑟夫问题56
3.5.2 一元多项式求和57
小结61
习题361
第4章 栈和队列64
4.1 栈64
4.1.1 栈的定义64
4.1.2 栈的顺序存储结构67
4.1.3 栈的链式存储结构71
4.1.4 顺序栈和链式栈的比较73
4.2 栈的应用74
4.2.1 迷宫问题74
4.2.2 表达式求值77
4.2.3 汉诺塔问题80
4.2.4 数制转换81
4.2.5 行编辑82
4.3 队列83
4.3.1 队列的定义83
4.3.2 队列的顺序存储86
4.3.3 队列的链式存储94
4.3.4 顺序队列与链式队列的比较97
4.3.5 优先队列97
4.4 队列的应用98
4.4.1 解决设备速度不匹配问题98
4.4.2 舞伴问题98
4.4.3 火车车厢重排100
小结102
习题4102
第5章 串105
5.1 C++语言的字符和字符串106
5.2 串的基本概念107
5.3 串的存储结构108
5.3.1 串的顺序存储结构108
5.3.2 串的链式存储结构109
5.3.3 串的索引存储结构111
5.4 串的操作111
5.4.1 常用的C++字符串函数111
5.4.2 串的抽象数据类型的描述113
5.4.3 串的类定义114
5.4.4 部分成员函数的实现115
5.5 串的基本运算与实现117
5.5.1 串插入117
5.5.2 串删除119
5.6 模式匹配120
5.6.1 模式匹配的BF算法120
5.6.2 模式匹配的KMP算法122
5.7 串在文本编辑中的应用126
小结128
习题5128
第6章 数组和广义表129
6.1 C++数组的定义及抽象数据类型表示129
6.1.1 C++数组的定义129
6.1.2 数组的抽象数据类型表示130
6.2 数组的顺序存储结构131
6.3 矩阵的压缩存储132
6.3.1 特殊矩阵的压缩存储133
6.3.2 稀疏矩阵的压缩存储136
6.4 广义表的概念142
6.5 广义表的存储结构表示144
6.6 广义表的运算146
小结152
习题6152
第7章 树155
7.1 树的相关术语156
7.1.1 树的定义156
7.1.2 树的表示形式157
7.1.3 树的元素157
7.1.4 树的基本操作159
7.1.5 一个树的接口159
7.1.6 树的基本算法160
7.2 二叉树161
7.2.1 二叉树的定义162
7.2.2 二叉树的性质163
7.2.3 二叉树的接口166
7.2.4 二叉树的存储结构166
7.2.5 二叉树的遍历174
7.2.6 二叉树遍历的应用176
7.3 线索二叉树177
7.3.1 线索二叉树的类定义177
7.3.2 中序线索二叉树182
7.4 树、森林和二叉树的关系185
7.4.1 树的存储结构185
7.4.2 森林与二叉树的转换187
7.4.3 树和森林的遍历190
7.5 哈夫曼树及其应用192
7.5.1 哈夫曼树的定义192
7.5.2 哈夫曼树的构造193
7.5.3 哈夫曼树在编码问题中的应用196
小结197
习题7198
第8章 图200
8.1 图的定义与抽象数据类型200
8.1.1 图的定义200
8.1.2 图的抽象数据类型205
8.2 图的存储结构206
8.2.1 邻接矩阵表示法207
8.2.2 邻接表212
8.2.3 十字链表219
8.2.4 邻接多重表220
8.3 图的遍历221
8.3.1 深度优先搜索222
8.3.2 广度优先搜索223
8.3.3 欧拉回路225
8.4 图的连通性227
8.4.1 连通分量227
8.4.2 重连通分量229
8.5 生成树229
8.5.1 普里姆(Prim)算法231
8.5.2 克鲁斯卡尔(Kruskal)算法234
8.6 最短路径236
8.6.1 单源最短路径237
8.6.2 求每一对顶点之间的最短路径239
8.7 拓扑排序240
8.8 关键路径245
小结250
习题8251
第9章 查找253
9.1 基本概念253
9.2 线性表的查找254
9.2.1 顺序查找255
9.2.2 折半查找256
9.2.3 索引查找259
9.2.4 分块查找262
9.3 树表查找265
9.3.1 二叉查找树265
9.3.2 平衡二叉树271
9.3.3 B-树276
9.4 哈希表的查找278
9.4.1 哈希表278
9.4.2 构造哈希表的基本方法280
9.4.3 解决冲突的方法282
9.4.4 哈希表的查找方法284
9.5 各种查找方法的比较285
小结286
习题9286
第10章 排序289
10.1 基本概念及分类289
10.2 内部排序293
10.2.1 插入排序293
10.2.2 交换排序297
10.2.3 选择排序301
10.2.4 归并排序311
10.2.5 基数排序314
10.3 内部排序方法比较318
10.4 外部排序简介320
小结320
习题10320
第11章 递归324
11.1 递归的定义324
11.2 常见递归问题325
11.2.1 汉诺塔问题325
11.2.2 八皇后问题327
11.2.3 表达式树329
11.3 递归的实现331
11.4 消除递归334
11.4.1 尾递归和单向递归的消除335
11.4.2 用栈模拟系统运行时的栈336
11.5 递归的评估339
小结340
习题11340
第12章 文件342
12.1 外存储器的介绍342
12.2 磁盘343
12.3 有关文件的概念344
12.3.1 文件及其类别345
12.3.2 文件的操作346
12.4 文件的组织348
12.4.1 顺序文件348
12.4.2 索引文件350
12.4.3 散列文件355
12.4.4 多关键字文件357
12.5 外部排序359
12.5.1 外部排序的简单方法359
12.5.2 两路归并360
12.5.3 多路归并363
12.6 文件的索引结构363
12.6.1 索引向量364
12.6.2 树形索引结构364
小结365
习题12365