图书介绍

数据结构 C语言描述 第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

数据结构 C语言描述 第2版
  • 殷人昆编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111559825
  • 出版时间:2017
  • 标注页数:385页
  • 文件大小:44MB
  • 文件页数:398页
  • 主题词:数据结构-高等学校-教材;C语言-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

数据结构 C语言描述 第2版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数据结构的存储结构6

1.1.5定义在数据结构上的操作7

1.2使用C语言描述数据结构7

1.2.1数据类型7

1.2.2算法的控制结构8

1.2.3算法的函数结构9

1.2.4动态存储分配12

1.2.5逻辑和关系运算的约定12

1.2.6输入与输出13

1.3算法和算法设计13

1.3.1算法的定义和特性13

1.3.2算法的设计步骤14

1.3.3算法设计的基本方法15

1.4算法分析与度量19

1.4.1算法的评价标准19

1.4.2算法的时间和空间复杂度度量20

1.4.3算法的渐近分析23

小结25

习题25

第2章 线性表27

2.1概述27

2.1.1线性表的定义和特点27

2.1.2线性表的主要操作28

2.2顺序表29

2.2.1顺序表的定义和特点29

2.2.2顺序表的结构定义30

2.2.3顺序表主要操作的实现31

2.2.4顺序表主要操作的性能分析32

2.2.5顺序表的应用举例33

2.3单链表34

2.3.1单链表的定义和特点34

2.3.2单链表的结构定义35

2.3.3单链表中的插入与删除36

2.3.4带头结点的单链表38

2.3.5单链表的顺序访问与尾递归40

2.3.6单链表的应用举例42

2.3.7循环单链表44

2.3.8双向链表47

2.3.9静态链表51

2.4顺序表与单链表的比较52

2.5单链表的应用:一元多项式及其运算53

2.5.1一元多项式的表示53

2.5.2多项式的结构定义54

2.5.3多项式的加法56

2.5.4多项式的乘法57

小结59

习题59

第3章 栈和队列62

3.1栈62

3.1.1栈的概念62

3.1.2顺序栈63

3.1.3链式栈67

3.1.4栈的混洗69

3.2队列70

3.2.1队列的概念71

3.2.2循环队列72

3.2.3链式队列75

3.3栈的应用77

3.3.1数制转换77

3.3.2括号匹配78

3.3.3表达式的计算与优先级处理79

3.3.4栈与递归的实现84

3.4队列的应用87

3.4.1打印杨辉三角形与逐行处理87

3.4.2电路布线与两点间的最短路径89

3.5在算法设计中使用递归91

3.5.1汉诺塔问题与分治法91

3.5.2迷宫问题与回溯法94

3.6双端队列96

3.6.1双端队列的概念97

3.6.2输入受限的双端队列97

3.6.3输出受限的双端队列98

3.6.4双端队列的存储表示98

3.7优先队列100

3.7.1优先队列的概念100

3.7.2优先队列的实现100

小结101

习题102

第4章 字符串105

4.1字符串的概念105

4.1.1字符串的基本概念105

4.1.2字符串的初始化和赋值106

4.1.3 C语言中有关字符串的库函数107

4.1.4字符串的自定义操作108

4.2字符串的实现109

4.2.1定长顺序存储表示109

4.2.2堆分配存储表示110

4.2.3块链存储表示112

4.3字符串的模式匹配113

4.3.1 BF模式匹配算法113

4.3.2无回溯的KMP模式匹配算法114

4.3.3 BM模式匹配算法119

小结121

习题121

第5章 多维数组和广义表123

5.1数组123

5.1.1一维数组123

5.1.2多维数组125

5.2特殊矩阵126

5.2.1对称矩阵的压缩存储127

5.2.2三对角矩阵的压缩存储128

5.2.3w对角矩阵的压缩存储129

5.3稀疏矩阵130

5.3.1稀疏矩阵的概念130

5.3.2稀疏矩阵的顺序存储表示130

5.3.3稀疏矩阵的链接存储表示137

5.4广义表140

5.4.1广义表的概念140

5.4.2广义表的性质141

5.4.3广义表的头尾表示法142

5.4.4广义表的扩展线性链表表示145

5.4.5广义表的层次表示法146

5.4.6广义表的应用举例:三元多项式的表示148

小结150

习题151

第6章 树与二叉树153

6.1树的基本概念153

6.1.1树的定义和术语153

6.1.2树的基本操作155

6.2二叉树及其存储表示156

6.2.1二叉树的概念156

6.2.2二叉树的性质157

6.2.3二叉树的主要操作159

6.2.4二叉树的顺序存储表示160

6.2.5二叉树的链接存储表示161

6.3二叉树的遍历163

6.3.1二叉树遍历的递归算法163

6.3.2递归遍历算法的应用举例164

6.3.3二叉树遍历的非递归算法167

6.3.4利用队列实现二叉树的层次序遍历170

6.3.5二叉树的计数171

6.4线索二叉树173

6.4.1线索二叉树的概念173

6.4.2线索二叉树的种类174

6.4.3中序线索二叉树的建立和遍历174

6.4.4先序与后序线索二叉树176

6.5树与森林178

6.5.1树的存储表示178

6.5.2森林与二叉树的转换183

6.5.3树与森林的深度优先遍历184

6.5.4树与森林的广度优先遍历187

6.5.5树遍历算法的应用举例188

小结189

习题190

第7章 树与二叉树的应用193

7.1 Huffman树193

7.1.1带权路径长度的概念193

7.1.2 Huffman树的概念194

7.1.3最优判定树197

7.1.4 Huffman编码199

7.2堆200

7.2.1小根堆和大根堆200

7.2.2堆的建立201

7.2.3堆的插入202

7.2.4堆的删除203

7.3二叉查找树204

7.3.1二叉查找树的概念204

7.3.2二叉查找树的查找205

7.3.3二叉查找树的插入206

7.3.4二叉查找树的删除207

7.3.5二叉查找树的性能分析208

7.4 AVL树211

7.4.1 AVL树的概念211

7.4.2平衡化旋转211

7.4.3 AVL树的插入213

7.4.4 AVL树的删除215

7.4.5 AVL树的性能分析217

7.5表达式树218

7.5.1从中缀表达式建立表达式树218

7.5.2从后缀表达式建立表达式树221

7.5.3利用表达式树求值222

7.6等价类与并查集223

7.6.1等价关系与等价类223

7.6.2确定等价类的方法223

7.6.3并查集的定义及其实现224

7.6.4并查集操作的分析和改进226

7.7八皇后问题与树的剪枝228

7.7.1八皇后问题的提出228

7.7.2八皇后问题的状态树228

7.7.3八皇后问题的算法230

小结231

习题231

第8章 图234

8.1图的基本概念234

8.1.1与图有关的若干概念234

8.1.2图的基本操作237

8.2图的存储结构238

8.2.1图的邻接矩阵表示238

8.2.2图的邻接表表示241

8.2.3邻接矩阵表示与邻接表表示的比较245

8.2.4无向图的邻接多重表表示246

8.2.5有向图的十字链表表示247

8.3图的遍历247

8.3.1深度优先搜索248

8.3.2广度优先搜索249

8.3.3连通分量250

8.3.4双连通图251

8.3.5有向图的强连通分量253

8.4最小生成树254

8.4.1最小生成树求解和贪心法255

8.4.2 Kruskal算法256

8.4.3 Prim算法258

8.4.4 Rosenstiehl和管梅谷算法260

8.5最短路径261

8.5.1非负权值的单源最短路径261

8.5.2边上权值为任意值的单源最短路径问题264

8.5.3所有顶点之间的最短路径266

8.5.4无权有向图的最短路径269

8.5.5无权有向图的传递闭包270

8.6活动网络271

8.6.1 AOV网络和拓扑排序271

8.6.2 AOE网络与关键路径274

小结278

习题279

第9章 查找282

9.1查找的基本概念282

9.1.1查找的概念282

9.1.2查找算法的性能分析283

9.2顺序查找283

9.2.1在普通顺序表上的顺序查找算法283

9.2.2在有序顺序表上的顺序查找算法284

9.3折半查找285

9.3.1折半查找方法285

9.3.2最优二叉查找树288

9.3.3次优二叉查找树289

9.3.4斐波那契查找和插值查找292

9.3.5跳表293

9.4 B树294

9.4.1索引顺序表与分块查找294

9.4.2多级索引结构与m叉查找树296

9.4.3 B树的概念297

9.4.4 B树上的查找298

9.4.5 B树上的插入299

9.4.6 B树上的删除301

9.4.7 B+树303

9.5其他查找树306

9.5.1红黑树306

9.5.2伸展树308

9.5.3键树310

9.6散列法312

9.6.1散列的概念312

9.6.2常见的散列函数313

9.6.3解决冲突的开地址法316

9.6.4解决冲突的链地址法323

9.6.5散列法分析325

小结326

习题327

第10章 排序330

10.1排序的概念与算法性能330

10.1.1排序的概念330

10.1.2排序算法的性能331

10.1.3数据表的结构定义332

10.2插入排序333

10.2.1直接插入排序333

10.2.2基于静态链表的直接插入排序335

10.2.3折半插入排序336

10.2.4希尔排序337

10.3交换排序338

10.3.1起泡排序338

10.3.2快速排序340

10.3.3快速排序的改进算法343

10.4选择排序344

10.4.1简单选择排序344

10.4.2锦标赛排序346

10.4.3堆排序348

10.5归并排序350

10.5.1二路归并排序的设计思路350

10.5.2二路归并排序的递归算法351

10.5.3二路归并排序的迭代算法352

10.6基数排序354

10.6.1基数排序的概念354

10.6.2 MSD基数排序355

10.6.3 LSD基数排序357

10.7内部排序算法的分析和比较359

10.7.1排序算法的下界359

10.7.2各种内部排序算法的比较360

10.8外部排序362

10.8.1常用的外存储器与缓冲区362

10.8.2基于磁盘的外部排序过程363

10.8.3 m路平衡归并的过程365

10.8.4初始归并段的生成369

10.8.5最佳归并树371

10.8.6磁带归并排序374

小结376

习题377

附录 实训作业要求与样例380

参考文献385

热门推荐