图书介绍

数据结构教程pdf电子书版本下载

数据结构教程
  • 施伯乐主编 著
  • 出版社: 上海:复旦大学出版社
  • ISBN:9787309081640
  • 出版时间:2011
  • 标注页数:263页
  • 文件大小:48MB
  • 文件页数:277页
  • 主题词:数据结构-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

数据结构教程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 程序的事后测试 2

1.2.3 时间复杂性的计算方法 4

1.2.4 空间复杂性的计算方法 4

1.2.5 计算复杂性的表示方法 5

1.2.6 两种代价计算方法的比较 6

1.3 从抽象数据类型到C++语言描述 7

1.4 C++基础知识 7

1.4.1 C++中的类和对象 8

1.4.2 C++的输入和输出 11

1.4.3 C++中的变量和常量 13

1.4.4 C++中的函数 14

1.4.5 C++中的动态存储分配 18

1.4.6 C++中的继承 18

1.4.7 C++中的多态性 20

1.4.8 其他 20

1.5 进阶导读 22

习题 23

第2章 线性表 24

2.1 线性表及其基本运算 24

2.1.1 线性表的定义与特点 24

2.1.2 线性表的基本运算 25

2.2 数组 26

2.2.1 数组的定义和特点 26

2.2.2 数组的类定义 26

2.2.3 数组的顺序存储方式 28

2.2.4 稀疏矩阵 32

2.3 线性表的顺序表示——顺序表 36

2.3.1 顺序表的定义和特点 36

2.3.2 顺序表类定义 36

2.3.3 顺序表的插入 37

2.3.4 顺序表的删除 38

2.3.5 顺序表的应用实例——用顺序存储的线性表表示多项式 39

2.4 线性表的链式表示——链表 44

2.4.1 线性链表的逻辑结构与建立 44

2.4.2 线性链表的类定义 45

2.4.3 线性链表的插入与删除 46

2.4.4 线性链表的应用实例——用线性链表表示多项式 49

2.4.5 几种变形的线性链表 51

2.4.6 双向链表 54

2.5 进阶导读 56

习题 57

第3章 串 59

3.1 串的定义 59

3.2 串的逻辑结构和基本操作 60

3.3 串的存储结构 61

3.3.1 串的数组存储表示 61

3.3.2 串的块链存储表示 61

3.4 串的实现 62

3.4.1 串的自定义类 62

3.4.2 串的实现 63

3.5 串的模式匹配算法 66

3.5.1 BF算法 67

3.5.2 KR算法 68

3.5.3 KMP算法 70

3.5.4 BM算法 72

3.6 进阶导读 76

习题 76

第4章 栈和队列 78

4.1 栈 78

4.1.1 栈的基本操作 78

4.1.2 用数组实现栈 79

4.1.3 用链表实现栈 81

4.1.4 栈的应用实例 82

4.2 队列 92

4.2.1 用数组实现队列 92

4.2.2 循环队列 93

4.2.3 双向队列 95

4.2.4 用链表实现队列 96

4.2.5 队列的应用举例 97

4.3 进阶导读 98

习题 99

第5章 递归和广义表 100

5.1 递归的概念 100

5.2 递归转化为非递归 102

5.3 广义表 106

5.3.1 广义表的概念与存储结构 106

5.3.2 广义表递归算法的实现 108

5.4 进阶导读 110

习题 110

第6章 树、二叉树和森林 111

6.1 基本概念 111

6.2 树的存储结构 113

6.3 树的线性表示 113

6.4 树的遍历 114

6.5 二叉树 116

6.6 二叉树的存储表示 120

6.7 二叉树的各种遍历 121

6.8 线索化二叉树 124

6.9 堆 130

6.10 计算二叉树的数目 133

6.11 二叉树的应用:霍夫曼树和霍夫曼编码 136

6.12 进阶导读 140

习题 140

第7章 查找与索引 142

7.1 查找与索引的概念 142

7.2 基于顺序表的查找 143

7.2.1 顺序表 143

7.2.2 顺序查找 144

7.2.3 有序顺序表上的查找操作 145

7.3 二叉查找树 147

7.3.1 二叉查找树的结构 147

7.3.2 二叉查找树上的查找 149

7.3.3 基于二叉查找树的遍历 150

7.3.4 最优二叉查找树 153

7.3.5 动态二叉查找树 160

7.4 B—树和B+树 166

7.4.1 B—树的结构 166

7.4.2 B—树的查询 167

7.4.3 B—树的插入 168

7.4.4 B—树的删除 170

7.4.5 B+树 172

7.5 Trie树 173

7.5.1 Trie树的定义 173

7.5.2 Trie树的查找 174

7.5.3 Trie树的插入和删除 175

7.6 Hash查找 177

7.6.1 Hash函数 177

7.6.2 解决冲突的方法 179

7.6.3 Hash查找的讨论 180

7.7 进阶导读 181

习题 182

第8章 图 184

8.1 图的基本概念 184

8.2 图的存储结构 187

8.2.1 邻接矩阵 187

8.2.2 邻接表 189

8.3 图的遍历与求图的连通分量 194

8.3.1 深度优先查找法 194

8.3.2 广度优先查找法 195

8.3.3 求图的连通分量 197

8.4 生成树与最小(代价)生成树 197

8.4.1 普里姆(Prim)算法 198

8.4.2 克鲁斯卡尔(Kruskal)算法 200

8.5 最短路径 201

8.5.1 求某个顶点到其他顶点的最短路径 202

8.5.2 求一对顶点之间的最短路径 205

8.5.3 传递闭包 207

8.6 拓扑排序 210

8.7 关键路径 213

8.8 进阶导读 219

习题 219

第9章 排序 222

9.1 问题定义 222

9.2 基本排序方法 223

9.2.1 插入排序 223

9.2.2 冒泡排序 224

9.2.3 选择排序 225

9.3 归并排序 226

9.4 快速排序 229

9.4.1 基本算法 229

9.4.2 性能 230

9.4.3 快速排序的一些改进策略 232

9.4.4 重复值 233

9.5 堆排序 235

9.5.1 堆及其基本操作 235

9.5.2 堆排序 238

9.6 希尔排序 241

9.7 基数排序 242

9.8 内部排序方法的比较 245

9.9 进阶导读——〈algorithm〉中的sort()函数 246

习题 247

第10章 外部排序 249

10.1 外部存储设备 249

10.1.1 磁带存储设备 249

10.1.2 磁盘存储设备 250

10.2 外排序的基本过程 251

10.3 磁盘文件的外排序方法 251

10.4 磁带文件的外排序方法 254

10.4.1 平衡合并排序 256

10.4.2 多阶段合并排序 256

10.5 进阶导读 262

习题 262

精品推荐