图书介绍

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

零基础学数据结构
  • 陈锐等编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111291367
  • 出版时间:2010
  • 标注页数:453页
  • 文件大小:491MB
  • 文件页数:479页
  • 主题词:数据结构

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.2 抽象数据类型及其描述2

1.2.1 抽象数据类型的定义3

1.2.2 抽象数据类型的描述3

1.3 数据结构的逻辑结构与物理结构4

1.3.1 逻辑结构4

1.3.2 物理结构5

1.4 算法的特性与算法的描述5

1.4.1 算法的定义5

1.4.2 算法的特性6

1.4.3 算法的描述6

1.5 算法分析7

1.5.1 算法设计的要求7

1.5.2 算法效率评价8

1.5.3 算法时间复杂度9

1.5.4 算法空间复杂度11

1.6 小结11

第2章 C语言基础12

2.1 开发环境介绍12

2.1.1 Turbo C 2.0开发环境介绍12

2.1.2 Visual C++ 6.0开发环境介绍14

2.2 递归与非递归17

2.2.1 函数的递归调用17

2.2.2 递归应用举例18

2.2.3 一般递归转化为非递归20

2.3 指针20

2.3.1 指针变量20

2.3.2 指针变量的引用22

2.3.3 指针与数组22

2.3.4 函数指针与指针函数27

2.4 参数传递32

2.4.1 传值调用33

2.4.2 传地址调用34

2.5 结构体与联合体36

2.5.1 结构体的定义37

2.5.2 指向结构体的指针38

2.5.3 联合体及应用39

2.6 动态内存分配与释放40

2.6.1 内存动态分配与释放40

2.6.2 链表40

2.7 小结46

2.8 习题46

第二篇 线性数据结构47

第3章 线性表47

3.1 线性表的概念及运算47

3.1.1 线性表的逻辑结构47

3.1.2 线性表的抽象数据类型48

3.2 线性表的顺序表示与实现49

3.2.1 线性表的顺序存储结构49

3.2.2 顺序表的基本运算50

3.2.3 顺序表的实现算法分析53

3.3 顺序表的应用举例53

3.4 线性表的链式表示与实现58

3.4.1 单链表的存储结构58

3.4.2 单链表的基本运算60

3.5 单链表应用举例65

3.6 循环单链表70

3.6.1 循环单链表的链式存储71

3.6.2 循环单链表的应用72

3.7 双向链表76

3.7.1 双向链表的存储结构76

3.7.2 双向链表的插入操作和删除操作77

3.8 双向链表的应用举例79

3.9 静态链表82

3.9.1 静态链表的存储结构82

3.9.2 静态链表的实现83

3.9.3 静态链表的应用85

3.10 各种线性表的操作86

3.11 一元多项式的表示与相乘94

3.11.1 一元多项式的表示94

3.11.2 一元多项式相乘95

3.12 小结99

3.13 习题100

第4章 栈101

4.1 栈的表示与实现101

4.1.1 栈的定义101

4.1.2 栈的抽象数据类型102

4.2 栈的顺序表示与实现102

4.2.1 栈的顺序存储结构102

4.2.2 顺序栈的基本运算103

4.2.3 共享栈的问题105

4.3 栈的应用举例一107

4.4 栈的链式表示与实现111

4.4.1 栈的存储结构111

4.4.2 栈的基本运算112

4.4.3 链栈的应用114

4.5 栈的应用举例二115

4.5.1 数制转换116

4.5.2 括号配对117

4.5.3 行编辑程序119

4.6 栈与递归的实现121

4.6.1 递归121

4.6.2 消除递归124

4.7 栈的应用举例三129

4.7.1 表达式的转换与计算130

4.7.2 表达式的运算132

4.8 小结136

4.9 习题137

第5章 队列138

5.1 队列的定义及抽象数据类型138

5.1.1 队列的定义138

5.1.2 队列的抽象数据类型138

5.2 队列的顺序存储及实现139

5.2.1 顺序队列的表示139

5.2.2 顺序队列的“假溢出”142

5.2.3 顺序循环队列的表示143

5.2.4 顺序循环队列的实现144

5.2.5 顺序循环队列实例145

5.3 队列的链式存储及实现148

5.3.1 链式队列的表示148

5.3.2 链式队列的实现150

5.3.3 链式队列实例152

5.4 双端队列156

5.4.1 双端队列的定义156

5.4.2 双端队列的应用156

5.5 队列在杨辉三角中的应用159

5.5.1 杨辉三角159

5.5.2 杨辉三角的队列构造159

5.5.3 杨辉三角队列的实现160

5.6 小结164

5.7 习题164

第6章 串165

6.1 串的定义及抽象数据类型165

6.1.1 串的定义165

6.1.2 串的抽象数据类型165

6.2 串的顺序表示与实现167

6.2.1 串的顺序存储结构167

6.2.2 串的基本运算168

6.3 串的应用举例173

6.4 串的堆分配表示与实现174

6.4.1 堆分配的存储结构175

6.4.2 堆串的基本运算175

6.5 堆串的应用举例181

6.6 串的链式存储表示与实现183

6.6.1 串的链式存储结构183

6.6.2 链串的基本运算184

6.7 链串的应用举例189

6.8 串的模式匹配191

6.8.1 经典的模式匹配算法——Brute-Force191

6.8.2 KMP算法193

6.8.3 模式匹配应用举例198

6.9 小结202

6.10 习题202

第7章 数组203

7.1 数组的定义及抽象数据类型203

7.1.1 数组的定义203

7.1.2 数组的抽象数据类型204

7.2 数组的顺序表示与实现204

7.2.1 数组的顺序存储结构204

7.2.2 数组的基本运算206

7.2.3 数组的应用举例208

7.3 特殊矩阵的压缩存储209

7.3.1 对称矩阵的压缩存储210

7.3.2 三角矩阵的压缩存储210

7.3.3 对角矩阵的压缩存储211

7.4 稀疏矩阵的压缩存储212

7.4.1 稀疏矩阵的定义212

7.4.2 稀疏矩阵的抽象数据类型212

7.4.3 稀疏矩阵的三元组表示213

7.4.4 稀疏矩阵的三元组实现213

7.5 稀疏矩阵的应用举例219

7.5.1 稀疏矩阵相乘三元组表示219

7.5.2 稀疏矩阵相乘三元组实现221

7.6 稀疏矩阵的十字链表表示与实现224

7.6.1 稀疏矩阵的十字链表表示224

7.6.2 稀疏矩阵的十字链表实现225

7.7 稀疏矩阵的十字链表实现应用举例228

7.8 小结233

7.9 习题234

第8章 广义表235

8.1 广义表的定义及抽象数据类型235

8.1.1 广义表的定义235

8.1.2 广义表的抽象数据类型236

8.2 广义表的头尾链表表示与实现236

8.2.1 广义表的头尾链表存储结构236

8.2.2 广义表的基本运算237

8.2.3 采用头尾链表存储结构的广义表应用举例240

8.3 广义表的扩展线性链表表示与实现243

8.3.1 广义表的扩展线性链表存储243

8.3.2 广义表的基本运算244

8.3.3 采用扩展线性链表存储结构的广义表应用举例247

8.4 小结249

8.5 习题250

第三篇 非线性数据结构251

第9章 树251

9.1 树的定义及抽象数据类型251

9.1.1 树的定义251

9.1.2 树的逻辑表示252

9.1.3 树的抽象数据类型253

9.2 二叉树254

9.2.1 二叉树的定义254

9.2.2 二叉树的性质255

9.2.3 二叉树的抽象数据类型257

9.3 二叉树的存储表示与实现258

9.3.1 二叉树的顺序存储258

9.3.2 二叉树的链式存储258

9.3.3 二叉树的基本运算259

9.4 二叉树的遍历263

9.4.1 二叉树遍历的定义263

9.4.2 二叉树的先序遍历263

9.4.3 二叉树的中序遍历265

9.4.4 二叉树的后序遍历267

9.5 二叉树遍历的应用举例269

9.5.1 二叉树的创建269

9.5.2 二叉树的输出273

9.5.3 二叉树的计数276

9.6 二叉树的线索化279

9.6.1 二叉树线索化的定义279

9.6.2 二叉树的线索化280

9.6.3 线索二叉树的遍历282

9.6.4 线索二叉树的应用举例284

9.7 树、森林与二叉树287

9.7.1 树的存储结构287

9.7.2 树转换为二叉树290

9.7.3 森林转换为二叉树291

9.7.4 二叉树转换为树和森林292

9.7.5 树和森林的遍历292

9.8 哈夫曼树293

9.8.1 哈夫曼树的定义293

9.8.2 哈夫曼编码294

9.8.3 哈夫曼编码算法的实现295

9.9 树与二叉树的应用举例301

9.9.1 相似二叉树301

9.9.2 由先序和中序、中序和后序确定二叉树302

9.9.3 树的孩子兄弟链表应用举例308

9.10 小结311

9.11 习题312

第10章 图313

10.1 图的定义与相关概念313

10.1.1 图的定义313

10.1.2 图的相关概念314

10.1.3 图的抽象数据类型316

10.2 图的存储结构317

10.2.1 邻接矩阵表示法317

10.2.2 邻接表表示法318

10.2.3 十字链表表示法320

10.2.4 邻接多重链表表示法321

10.3 图的应用举例322

10.3.1 采用邻接矩阵创建图322

10.3.2 采用邻接表创建图325

10.4 图的遍历328

10.4.1 图的深度优先遍历328

10.4.2 图的广度优先遍历331

10.4.3 图的遍历应用举例333

10.5 图的连通性问题335

10.5.1 无向图的连通分量与生成树335

10.5.2 最小生成树337

10.6 有向无环图342

10.6.1 AOV网与拓扑排序342

10.6.2 AOE网与关键路径345

10.6.3 关键路径应用举例349

10.7 最短路径354

10.7.1 从某个顶点到其余各顶点的最短路径354

10.7.2 每一对顶点之间的最短路径359

10.8 图的应用举例363

10.9 小结367

10.10 习题368

第四篇 查找和排序369

第11章 查找369

11.1 查找的基本概念369

11.2 静态查找370

11.2.1顺序表的查找370

11.2.2 有序顺序表的查找371

11.2.3 索引顺序表的查找373

11.2.4 静态查找应用举例374

11.3 动态查找377

11.3.1 二叉排序树377

11.3.2 平衡二叉树384

11.4 B_树与B+树392

11.4.1 B_树392

11.4.2 B+树399

11.5 散列表400

11.5.1 散列表的定义400

11.5.2 散列函数的构造方法401

11.5.3 处理冲突的方法402

11.5.4 散列表应用举例403

11.6 小结407

11.7 习题408

第12章 内排序409

12.1 排序的基本概念409

12.2 插入排序410

12.2.1 直接插入排序410

12.2.2 折半插入排序411

12.2.3 希尔排序412

12.2.4 插入排序应用举例413

12.3 选择排序415

12.3.1 简单选择排序415

12.3.2 堆排序417

12.3.3 选择排序应用举例421

12.4 交换排序423

12.4.1 冒泡排序423

12.4.2 快速排序424

12.4.3 交换排序应用举例427

12.5 归并排序431

12.5.1 归并排序算法431

12.5.2 归并排序应用举例432

12.6 基数排序434

12.6.1 基数排序算法434

12.6.2 基数排序应用举例437

12.7 各种排序算法的比较441

12.8 排序算法应用举例442

12.9 小结445

12.10 习题446

第13章 外排序447

13.1 外存的存取特性447

13.2 磁盘排序448

13.2.1 归并排序的基本方法448

13.2.2 多路归并排序449

13.3 磁带排序451

13.3.1 2路归并排序451

13.3.2 多路非平衡归并排序452

13.4 小结453

热门推荐