图书介绍

数据结构与算法 理论与实践2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

数据结构与算法 理论与实践
  • 唐培和,徐奕奕编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121244674
  • 出版时间:2015
  • 标注页数:373页
  • 文件大小:77MB
  • 文件页数:390页
  • 主题词:数据结构;算法分析

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 《数据结构与算法》课程介绍1

1.1.3 为什么要学习《数据结构与算法》课程2

1.2 基本概念和术语3

1.2.1 数据3

1.2.2 数据项3

1.2.3 数据元素4

1.2.4 数据对象4

1.2.5 数据结构4

1.2.6 数据结构的形式化描述6

1.2.7 数据的逻辑结构、存储结构与物理结构7

1.2.8 数据结构实例7

1.3 算法9

1.3.1 什么是算法9

1.3.2 算法的性质11

1.3.3 算法和程序12

1.4 算法的表示(描述)14

1.4.1 自然语言14

1.4.2 计算机语言15

1.4.3 图形化工具16

1.4.4 伪代码17

1.5 算法设计的准则19

1.5.1 正确性19

1.5.2 可读性20

1.5.3 健壮性20

1.5.4 效率21

1.6 算法效率分析24

1.6.1 事后统计的方法25

1.6.2 事前分析估算的方法25

1.6.3 算法的空间复杂度28

1.7 抽象数据类型30

阅读材料32

习题135

第2章 顺序存储结构的线性表39

2.1 基本概念和操作39

2.1.1 什么是线性表39

2.1.2 线性表的逻辑结构40

2.1.3 线性表的基本操作40

2.1.4 线性表的顺序存储结构41

2.1.5 线性表的插入与删除操作(算法)42

2.1.6 顺序表应用举例45

2.2 堆栈47

2.2.1 堆栈的定义47

2.2.2 栈的顺序存储结构与操作(算法)48

2.2.3 堆栈在算法设计中的应用51

2.3 队列63

2.3.1 队列的定义64

2.3.2 队列的顺序存储结构与操作(算法)64

2.3.3 循环队列66

2.3.4 队列应用举例68

2.4 集合及其运算71

2.4.1 集合的定义71

2.4.2 集合运算72

2.4.3 集合的顺序存储结构和操作实现72

小结75

习题275

第3章 链式存储结构的线性表79

3.1 什么是链式存储结构的线性表79

3.2 线性链表的操作(算法)82

3.2.1 线性链表的构造83

3.2.2 求表长86

3.2.3 查找操作86

3.2.4 线性链表的插入87

3.2.5 线性链表的删除89

3.3 栈的链式存储结构90

3.4 队列的链式存储结构92

3.5 循环链表93

3.6 双向链表94

3.7 静态链表95

3.8 链表应用97

3.9 一元多项式的存储和相加100

3.10 集合的链式存储结构与操作103

3.11 顺序表和链表的比较106

习题3107

第4章 串110

4.1 基本概念111

4.2 串的存储结构112

4.2.1 顺序存储结构112

4.2.2 链式存储结构113

4.3 串的基本操作113

4.3.1 串复制114

4.3.2 求字符串的长度115

4.3.3 字符串连接115

4.3.4 取子串115

4.3.5 判断两个字符串是否相等116

4.3.6 插入字符串117

4.3.7 删除子串117

4.3.8 字符串清空118

4.3.9 判断字符串是否为空118

4.3.10 字符串比较118

4.4 串的模式匹配算法119

4.4.1 模式匹配及其BF算法119

4.4.2 模式匹配的一种改进算法——KMP算法120

4.4.3 其他模式匹配算法124

4.5 串操作应用举例132

习题4133

第5章 数组、特殊矩阵与广义表136

5.1 数组的定义和运算136

5.1.1 数组的基本概念136

5.1.2 数组的特点137

5.2 数组的顺序存储结构137

5.2.1 一维数组137

5.2.2 二维数组138

5.2.3 三维数组138

5.2.4 n维数组139

5.3 特殊矩阵的压缩存储与处理141

5.3.1 基本原则141

5.3.2 对称矩阵的压缩存储141

5.3.3 三角矩阵的压缩存储142

5.3.4 对角矩阵(带状矩阵)的压缩存储143

5.4 稀疏矩阵144

5.4.1 稀疏矩阵的三元组表存储145

5.4.2 稀疏矩阵的转置145

5.4.3 稀疏矩阵的快速转置算法147

5.5.4 稀疏矩阵的乘积148

5.4.5 稀疏矩阵的十字链表存储151

5.5 广义表155

5.5.1 广义表的定义155

5.5.2 广义表的特性156

5.5.3 广义表的基本操作156

5.5.4 广义表的存储157

5.5.5 广义表的基本操作159

习题5162

第6章 树与二叉树166

6.1 基本概念166

6.1.1 什么是树166

6.1.2 基本概念和术语167

6.1.3 树的表示方法167

6.1.4 树的基本操作168

6.1.5 树的存储结构168

6.2 二叉树173

6.2.1 二叉树的定义173

6.2.2 二叉树的基本形态173

6.2.3 两种特殊的二叉树174

6.2.4 二叉树具有的重要性质175

6.2.5 二叉树的存储结构176

6.2.6 二叉树的基本操作179

6.3 二叉树的遍历179

6.3.1 二叉树的遍历179

6.3.2 先序遍历算法180

6.3.3 中序遍历181

6.3.4 后序遍历182

6.3.5 按层次顺序遍历二叉树183

6.3.6 遍历算法的应用184

6.4 二叉树其他运算185

6.4.1 建造二叉树算法185

6.4.2 求二叉树高度(深度)186

6.4.3 求二叉树宽度186

6.4.4 二叉树查找187

6.4.5 输出一棵二叉树188

6.4.6 清除一棵二叉树188

6.5 线索二叉树189

6.5.1 建立线索树189

6.5.2 检索结点191

6.5.3 在线索二叉树上插入一个结点192

6.6 树与森林193

6.6.1 树与二叉树的转换193

6.6.2 森林与二叉树的转换194

6.6.3 树和森林的遍历194

6.7 树的应用197

6.7.1 判定树197

6.7.2 集合的表示198

6.7.3 关系等价求等价类问题199

6.8 二叉排序树200

6.8.1 二叉排序树的定义200

6.8.2 二叉排序树的构造201

6.8.3 二叉排序树的查找203

6.8.4 二叉排序树的更新205

6.8.5 二叉排序树的删除205

6.9 哈夫曼树及其应用207

6.9.1 基本概念207

6.9.2 哈夫曼树的构造208

6.9.3 哈夫曼编码210

6.9.4 最佳判定过程211

6.10 平衡二叉树212

6.10.1 平衡二叉树的引入212

6.10.2 平衡二叉树的定义212

6.10.3 最小不平衡二叉树213

6.10.4 不平衡二叉树的调整方法214

6.10.5 建立平衡二叉树举例218

6.10.6 平衡二叉树与二叉排序树比较219

习题6220

第7章 图及其应用223

7.1 基本概念和术语225

7.1.1 图的定义225

7.1.2 完全图、稠密图、稀疏图226

7.1.3 顶点的度227

7.1.4 子图227

7.1.5 路径和回路227

7.1.6 连通和连通分量227

7.1.7 强连通图和强连通分量227

7.1.8 权和网228

7.2 图的存储结构229

7.2.1 邻接矩阵229

7.2.2 邻接表231

7.2.3 十字链表234

7.2.4 邻接多重表236

7.2.5 图的边集数组237

7.3 图的遍历237

7.3.1 深度优先搜索237

7.3.2 广度优先搜索239

7.3.3 搜索算法在搜索引擎中的应用242

7.4 图的连通性243

7.4.1 无向图的连通性243

7.4.2 有向图的连通性244

7.4.3 生成树和生成森林245

7.4.4 关结点和重连通分量245

7.5 最小生成树248

7.5.1 什么是生成树248

7.5.2 构造最小生成树的普里姆(Prim)算法248

7.5.3 构造最小生成树的Kruskal算法252

7.6 最短路径255

7.6.1 求某一个源点到其他顶点的最短路径256

7.6.2 Bellman-Ford算法259

7.6.3 每对顶点之间的最短路径262

7.7 有向无环图及其应用267

7.7.1 有向无环图的概念267

7.7.2 AOV网与拓扑排序268

7.7.3 AOE网与关键路径272

习题7277

第8章 查找与搜索引擎281

8.1 基本概念与术语281

8.2 顺序查找283

8.3 二分查找(折半查找)285

8.3.1 二分查找的定义285

8.3.2 二分查找算法286

8.3.3 二分查找判定树287

8.3.4 二分查找性能分析287

8.4 有序表的插值查找和斐波那契查找288

8.4.1 插值查找288

8.4.2 斐波那契查找288

8.5 分块查找289

8.6 B-树和B+树上的查找291

8.6.1 B-树及其查找291

8.6.2 B+树293

8.7 哈希表与散列查找294

8.7.1 散列的概念295

8.7.2 哈希函数295

8.7.3 散列存储的冲突298

8.7.4 装填因子298

8.7.5 冲突解决方法298

8.7.6 散列存储的平均查找长度302

8.7.7 散列存储的优缺点303

8.8 搜索引擎及其相关技术303

8.8.1 网页的自动下载与存储304

8.8.2 网页索引技术306

8.8.3 网页排名技术310

习题8323

第9章 排序326

9.1 基本概念327

9.2 插入排序327

9.2.1 直接插入排序327

9.2.2 折半插入排序329

9.2.3 表插入排序330

9.2.4 希尔排序332

9.3 交换排序336

9.3.1 冒泡排序336

9.3.2 快速排序337

9.4 选择排序343

9.4.1 简单选择排序343

9.4.2 树形选择排序346

9.4.3 堆排序350

9.5 归并排序356

9.6 分配排序359

9.6.1 箱排序359

9.6.2 基数排序360

9.6.3 多关键字排序363

9.7 外排序364

9.7.1 外部排序的方法364

9.7.2 多路归并的实现365

9.8 排序方法之比较368

习题9369

热门推荐