图书介绍

数据结构PDF|Epub|txt|kindle电子书版本网盘下载

数据结构
  • 王宏生,宋继红编著 著
  • 出版社: 北京:国防工业出版社
  • 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

热门推荐