图书介绍

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

数据结构
  • 王宏生,宋继红编著 著
  • 出版社: 北京:国防工业出版社
  • ISBN:7118042447
  • 出版时间:2006
  • 标注页数:312页
  • 文件大小:14MB
  • 文件页数:325页
  • 主题词:数据结构

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 数据结构的产生与发展 1

第1章 绪论 1

1.1.2 数据结构的基本概念 2

1.1.3 数据的逻辑结构 4

1.1.4 数据的存储结构 5

1.1.5 数据的运算 6

1.1.6 数据的逻辑结构、存储结构及数据运算的关系 7

1.2 抽象数据 7

1.2.1 数据类型 7

1.2.2 抽象数据类型 8

1.3.1 算法 10

1.2.3 抽象数据类型的表示与实现 10

1.3 算法及其性能分析 10

1.3.2 算法的时间复杂度度量 11

1.3.3 算法的空间复杂度度量 16

小结 17

习题 17

第2章 线性表 21

2.1 线性表的抽象数据类型 21

2.2 线性表的顺序存储与实现 23

2.2.1 顺序存储 23

2.2.2 顺序表的类定义及实现 24

2.3.1 线性链表的存储结构 31

2.3 线性表的链式存储与实现 31

2.3.2 单链表类的定义 33

2.3.3 线性链表类的C++实现 35

2.3.4 循环链表及其定义 39

2.3.5 循环链表类的C++实现 40

2.3.6 双向链表 41

2.3.7 线性表的顺序存储和链式存储的比较 43

2.3.8 链式存储应用举例 44

2.4 一元多项式的表示及相加 46

2.4.1 一元多项式的表示 46

2.4.2 一元多项式的相加 47

习题 50

小结 50

第3章 栈和队列 53

3.1 栈 53

3.1.1 栈的定义 53

3.1.2 栈的顺序存储结构 55

3.1.3 栈的链式存储结构 58

3.1.4 顺序栈和链式栈的比较 60

3.2 栈的应用举例 60

3.2.1 迷宫问题 60

3.2.2 表达式求值 64

3.2.3 数制转换 69

3.2.4 行编辑 70

3.3.1 递归的概念 71

3.3 栈与递归 71

3.3.2 递归的过程与工作栈 74

3.4 队列 74

3.4.1 队列的定义 74

3.4.2 队列的顺序存储 76

3.4.3 队列的链式存储 82

3.4.4 优先级队列 85

3.5 队列的应用 87

3.5.1 打印杨辉三角形 87

3.5.2 舞伴问题 88

小结 90

习题 91

第4章 串 94

4.1 串的基本概念和抽象数据类型 94

4.1.1 串的基本概念 94

4.1.2 串的抽象数据类型 95

4.2 串的存储结构 96

4.2.1 串的顺序存储结构 97

4.2.2 串的链式存储结构 98

4.2.3 串的索引存储结构 99

4.3 串的类定义及C++实现 99

4.3.1 串的类定义 99

4.3.2 部分成员函数的实现 101

4.3.3 常用的C++字符串函数及使用 103

4.4.1 串插入 106

4.4 串的基本运算与C++实现 106

4.4.2 串删除 107

4.5 串的模式匹配 109

4.5.1 模式匹配的简单算法 109

4.5.2 模式匹配的KMP算法 112

4.6 串在文本编辑中的应用 117

小结 118

习题 118

第5章 数组和广义表 120

5.1 数组的定义及抽象数据类型表示 120

5.1.1 数组的定义 120

5.1.2 数组的抽象数据类型表示 121

5.2 数组的顺序存储与寻址 122

5.3 特殊矩阵及其压缩存储 123

5.3.1 特殊矩阵 123

5.3.2 特殊矩阵的压缩存储 124

5.4 稀疏矩阵 126

5.4.1 稀疏矩阵的存储方法 126

5.4.2 基于三元组表的稀疏矩阵的转置 131

5.4.3 基于十字链表的稀疏矩阵的相加 133

5.5 广义表的概念 134

5.6 广义表的存储结构表示 135

5.7 广义表的运算 137

小结 143

习题 144

6.1.2 树的术语 147

6.1.1 树的定义 147

6.1 树和森林的概念 147

第6章 树与森林 147

6.1.3 树的抽象数据类型 148

6.2 二叉树 150

6.2.1 二叉树的定义 150

6.2.2 二叉树的主要性质 150

6.2.3 二叉树的抽象数据类型 152

6.2.4 二叉树的存储结构 154

6.3 二叉树遍历 159

6.3.1 中序遍历 159

6.3.4 二叉树遍历的应用 160

6.3.3 后序遍历 160

6.3.2 先序遍历 160

6.3.5 二叉树遍历的非递归实现 162

6.4 线索二叉树 165

6.4.1 线索 165

6.4.2 中序线索化二叉树 167

6.4.3 先序与后序的线索化二叉树 170

6.5 堆(Heap) 171

6.5.1 堆的定义 171

6.5.2 堆的建立 172

6.5.3 堆的插入与删除 174

6.6 树与森林 175

6.6.1 树的存储结构 175

6.6.2 森林与二叉树的转换 179

6.6.3 树的遍历 181

6.6.4 森林的遍历 182

6.7 哈夫曼树及其应用 183

6.7.1 哈夫曼树的基本概念 183

6.7.2 哈夫曼树的构造算法 185

6.7.3 哈夫曼编码 186

小结 187

习题 187

第7章 图 191

7.1 图的基本概念 191

7.1.1 图的定义和术语 191

7.1.2 图的抽象数据类型 193

7.2.1 邻接矩阵 195

7.2 图的存储表示 195

7.2.2 邻接表 198

7.2.3 十字链表 202

7.2.4 邻接多重表 203

7.3 图的遍历与连通性 204

7.3.1 深度优先搜索 204

7.3.2 广度优先搜索 205

7.3.3 连通分量 206

7.4 最小生成树 207

7.4.1 普里姆算法 208

7.4.2 克鲁斯卡尔算法 210

7.5 最短路径 212

7.5.1 从一个源点到其他各点的最短路径 213

7.5.2 每一对顶点之间的最短路径 215

7.6 活动网络 217

7.6.1 用顶点表示活动的网络 217

7.6.2 AOE图与关键路径 221

小结 226

习题 226

第8章 查找 230

8.1 静态查找表 230

8.1.1 顺序查找 232

8.1.2 有序表的折半查找 234

8.1.3 有序表的斐波那契查找 237

8.1.4 分块查找 237

8.2.1 二叉排序树 238

8.2 动态查找表 238

8.2.2 平衡二叉树(AVL树) 243

8.2.3 B-树和B+树 248

8.3 散列 253

8.3.1 散列表与散列方法 253

8.3.2 常用的散列函数 254

8.3.3 处理冲突的方法 256

8.3.4 散列表的查找分析 261

小结 262

习题 262

第9章 排序 266

9.1 概述 266

9.2.1 直接插入排序 267

9.2 插入排序 267

9.2.2 折半插入排序 268

9.2.3 希尔排序(Shell's Sort) 269

9.3 交换排序 271

9.3.1 起泡排序(BubbSort) 271

9.3.2 快速排序 272

9.4 选择排序 275

9.4.1 简单选择排序 275

9.4.2 锦标赛排序 276

9.4.3 堆排序(Heap Sort) 278

9.5 归并排序 280

9.6.1 多关键码排序 283

9.6 基数排序 283

9.6.2 链式基数排序 284

9.7 内部排序方法的比较 287

9.8 外部排序 287

9.8.1 外部排序的方法 287

9.8.2 多路平衡归并的实现 289

9.8.3 初始归并段的生成 291

9.8.4 最佳归并树 294

小结 294

习题 295

附录1 C++面向对象程序设计要点 298

附录2 VC++6.0开发环境简介 308

参考文献 312

精品推荐