×
算法与数据结构(C++语言版)(第2版)

包邮算法与数据结构(C++语言版)(第2版)

¥51.4 (7.4折) ?
1星价 ¥51.4
2星价¥51.4 定价¥69.0
暂无评论
图文详情
  • ISBN:9787121462139
  • 装帧:简裝本
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:344
  • 出版时间:2023-08-01
  • 条形码:9787121462139 ; 978-7-121-46213-9

内容简介

本书主要介绍几种经典数据结构和算法,按照“线性结构、树结构、图结构、集合结构”四大模块循序渐进地展开,涵盖全国硕士研究生招生考试计算机学科专业基础考试大纲的核心知识点。本书特色内容:闯关模块,以真题作为闯关任务,夯实理论基础;算法拓展模块,以经典算法作为拓展训练任务,提升实践能力;价值引领模块(见电子课件),将思政元素与基本概念、理论和实例相融合,沁润品格、提升素养;丰富的配套资源,登录华信教育资源网(www.hxedu.com.cn)注册后免费下载。本书将C++作为数据结构的算法描述语言,将数据结构与面向对象技术有机结合。书中的算法讲解都有完整的C++代码实现,并在Visual Studio 2010环境下编译通过。本书既可作为应用型、职业型高等院校计算机及相关专业的数据结构课程教材,也可作为考研、专升本考试等的参考书,还可作为工程技术人员的工具书。

目录

第1章 概论 1

1.1 什么是数据结构 1

1.2 基本概念和术语 4

1.3 算法和算法分析 7

1.3.1 算法的定义及特性 7

1.3.2 算法的设计要求 8

1.3.3 算法效率的衡量方法 9

1.3.4 算法的时间复杂度 9

1.3.5 算法的空间复杂度 15

1.4 抽象数据类型 16

习题1 18

第2章 线性表 19

2.1 线性表的类型定义 19

2.1.1 线性表的概念 19

2.1.2 线性表的抽象数据类型 20

2.2 线性表的顺序表示和实现 21

2.2.1 线性表的顺序表示 21

2.2.2 顺序表基本运算的实现 22

2.3 线性表的链式表示和实现 26

2.3.1 线性表的链式表示 27

2.3.2 单链表上基本运算的实现 30

2.4 双链表 37

2.5 循环链表 41

2.6 线性表实现方法的比较 43

2.7 算法拓展 44

习题2 48

第3章 栈和队列 51

3.1 栈 51

3.1.1 栈的类型定义 51

3.1.2 顺序栈的表示和实现 53

3.1.3 链栈的表示和实现 55

3.2 栈的应用举例 57

3.2.1 十进制数转换为其他进制数 57

3.2.2 表达式中括号的匹配检查 58

3.2.3 表达式求值 59

3.2.4 利用栈消除递归 67

3.3 队列 71

3.3.1 队列的类型定义 71

3.3.2 循环队列—队列的顺序表示和实现 73

3.3.3 链队列—队列的链式表示和实现 76

3.4 算法拓展 78

习题3 81

第4章 串 83

4.1 串的基本概念 83

4.2 串的表示和实现 84

4.2.1 串的顺序存储结构 84

4.2.2 串的链式存储结构 87

4.3 串的模式匹配 88

4.3.1 朴素的模式匹配算法 88

4.3.2 KMP算法 89

习题4 94

第5章 数组 96

5.1 基本概念 96

5.2 矩阵的压缩存储 99

5.2.1 特殊矩阵 99

5.2.2 稀疏矩阵 102

5.3 算法拓展 109

习题5 112

第6章 树和二叉树 115

6.1 树的概念 115

6.2 二叉树的概念和性质 117

6.2.1 二叉树的概念和抽象数据类型 117

6.2.2 二叉树的性质 119

6.3 二叉树的表示和实现 121

6.3.1 二叉树的存储结构 121

6.3.2 二叉树的遍历 123

6.3.3 二叉树的其他基本运算 130

6.4 树和森林 132

6.4.1 树的存储结构 133

6.4.2 树、森林和二叉树的相互转换 135

6.4.3 树和森林的遍历 138

6.4.4 树和森林的其他基本运算 141

*6.5 线索二叉树 143

6.6 算法拓展 145

习题6 145

第7章 树和二叉树的应用 148

*7.1 表达式树 148

7.2 哈夫曼树和哈夫曼编码 153

7.2.1 哈夫曼树 153

7.2.2 哈夫曼编码 157

7.3 堆和优先级队列 160

7.3.1 堆 160

7.3.2 优先级队列 161

*7.4 并查集 167

7.5 算法拓展 169

习题7 171

第8章 图 173

8.1 图的概念 173

8.2 图的存储结构 177

8.2.1 邻接矩阵 177

8.2.2 邻接表 181

*8.2.3 十字链表 186

*8.2.4 邻接多重表 187

8.3 图的遍历 187

8.3.1 深度优先遍历 187

8.3.2 广度优先遍历 190

8.3.3 图的连通分量和生成树 192

8.4 算法拓展 193

习题8 194

第9章 图的应用 197

9.1 *小生成树 197

9.1.1 *小生成树的概念 197

9.1.2 Prim算法 198

9.1.3 Kruskal算法 201

9.2 有向无环图及其应用 204

9.2.1 拓扑排序 205

9.2.2 关键路径 210

9.3 *短路径 216

9.3.1 单源点*短路径 216

9.3.2 每对顶点之间的*短路径 220

9.4 算法拓展 223

习题9 224

第10章 集合与查找 226

10.1 基本概念 226

10.2 静态查找表上的查找 227

10.2.1 顺序查找 227

10.2.2 折半查找 229

10.2.3 分块查找 233

10.3 动态查找表上的查找 234

10.3.1 二叉查找树 234

10.3.2 平衡二叉树 241

*10.3.3 B树 254

*10.3.4 B 树 259

*10.3.5 字典树 260

10.4 算法拓展 261

习题10 264

第11章 散列表 267

11.1 散列表的概念 267

11.2 构造散列函数的方法 268

11.2.1 直接定址法 268

11.2.2 折叠法 268

11.2.3 数字分析法 268

11.2.4 平方取中法 268

11.2.5 除留余数法 269

11.3 解决冲突的方法 269

11.3.1 闭散列法 269

11.3.2 开散列法 272

11.4 散列表的查找性能分析 272

11.5 散列表的实现 273

11.5.1 闭散列表的表示和实现 274

11.5.2 开散列表的表示和实现 278

11.5.3 闭散列表与开散列表的比较 281

习题11 281

第12章 排序 283

12.1 排序的基本概念 283

12.2 插入排序 284

12.2.1 直接插入排序 284

12.2.2 折半插入排序 285

12.2.3 希尔排序 285

12.3 交换排序 287

12.3.1 冒泡排序 287

12.3.2 快速排序 288

12.4 选择排序 292

12.4.1 直接选择排序 292

12.4.2 堆排序 292

*12.4.3 锦标赛排序 295

12.5 归并排序 296

*12.6 基数排序 298

12.7 各种内部排序算法的比较 300

*12.8 外部排序 303

12.8.1 置换选择排序 304

12.8.2 多路归并排序 305

习题12 306

附录A 情景项目 309

参考资料 313
展开全部

作者简介

冯广慧,2004年毕业于吉林大学获工学学士学位,2007年毕业于吉林大学研究生院获工学硕士学位,自2007年起一直从事于《算法与数据结构》课程的一线教学和考研辅导工作,对该课程有深入研究,参编《C语言程序设计教程》、《Access数据库程序设计真题考点分析与讲解》等多部著作。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航