图书介绍
数据结构 C语言描述【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 殷人昆编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302291190
- 出版时间:2012
- 标注页数:426页
- 文件大小:24MB
- 文件页数:441页
- 主题词:数据结构-高等学校-教材;C语言-程序设计-高等学校-教材
PDF下载
下载说明
数据结构 C语言描述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数据结构的分类5
1.1.4数据结构的存储结构7
1.1.5定义在数据结构上的操作8
1.1.6“好”的数据结构9
1.2使用C语言描述数据结构9
1.2.1 C语言的数据类型9
1.2.2算法的控制结构10
1.2.3算法的函数结构11
1.2.4动态存储分配14
1.2.5逻辑和关系运算的约定15
1.2.6输入与输出16
1.3算法和算法设计17
1.3.1算法的定义和特性17
1.3.2算法的设计步骤17
1.3.3算法设计的基本方法18
1.4算法分析与度量21
1.4.1算法的评价标准22
1.4.2算法的时间和空间复杂性度量22
1.4.3算法的渐进分析25
小结29
习题29
第2章 线性表32
2.1线性表32
2.1.1线性表的定义和特点32
2.1.2线性表的主要操作33
2.2顺序表34
2.2.1顺序表的定义和特点34
2.2.2顺序表的结构定义35
2.2.3顺序表主要操作的实现36
2.2.4顺序表主要操作的性能分析38
2.2.5顺序表的应用举例40
2.3单链表41
2.3.1单链表的定义和特点41
2.3.2单链表的结构定义42
2.3.3单链表中指针的操作42
2.3.4单链表中的插入与删除43
2.3.5带头结点的单链表46
2.3.6单链表主要操作的性能分析48
2.3.7单链表的顺序访问与尾递归49
2.3.8单链表的应用举例51
2.4顺序表与线性链表的比较53
2.5线性链表的其他变形55
2.5.1循环链表55
2.5.2双向链表59
2.5.3静态链表62
2.6线性表的应用:一元多项式及其运算63
2.6.1一元多项式的表示64
2.6.2多项式的结构定义65
2.6.3多项式的加法66
2.6.4多项式的乘法68
小结69
习题70
第3章 栈和队列74
3.1栈74
3.1.1栈的概念74
3.1.2顺序栈75
3.1.3链式栈80
3.1.4栈的混洗82
3.2队列83
3.2.1队列的概念83
3.2.2循环队列85
3.2.3链式队列88
3.3栈的应用90
3.3.1数制转换91
3.3.2括号匹配91
3.3.3表达式的计算与优先级处理93
3.3.4栈与递归的实现98
3.4队列的应用100
3.4.1打印杨辉三角形与逐行处理100
3.4.2电路布线与两点间的最短路径102
3.5在算法设计中使用递归105
3.5.1汉诺塔问题与分治法105
3.5.2迷宫问题与回溯法107
3.5.3计算组合数与动态规划111
3.6双端队列113
3.6.1双端队列的概念113
3.6.2输入受限的双端队列113
3.6.3输出受限的双端队列114
3.6.4双端队列的顺序存储表示115
3.6.5双端队列的链接存储表示117
小结117
习题118
第4章 数组、串和广义表122
4.1数组122
4.1.1一维数组122
4.1.2多维数组124
4.1.3数组的应用举例126
4.2特殊矩阵的压缩存储127
4.2.1对称矩阵的压缩存储128
4.2.2三对角矩阵的压缩存储129
4.3稀疏矩阵131
4.3.1稀疏矩阵的概念131
4.3.2稀疏矩阵的三元组表表示131
4.3.3稀疏矩阵的十字链表表示132
4.4字符串134
4.4.1字符串的概念134
4.4.2字符串的初始化和赋值134
4.4.3 C语言中有关字符串的库函数135
4.4.4自定义字符串的存储表示137
4.4.5串的模式匹配141
4.5广义表147
4.5.1广义表的概念147
4.5.2广义表的性质148
4.5.3广义表的链接表示149
4.5.4三元多项式的表示151
小结153
习题154
第5章 树与二叉树157
5.1树的基本概念157
5.1.1树的定义和术语157
5.1.2树的基本操作160
5.2二叉树161
5.2.1二叉树的概念161
5.2.2二叉树的性质161
5.2.3二叉树的主要操作163
5.3二叉树的存储表示165
5.3.1二叉树的顺序存储表示165
5.3.2二叉树的链表存储表示166
5.4二叉树的遍历167
5.4.1二叉树遍历的递归算法167
5.4.2递归遍历算法的应用举例168
5.4.3二叉树遍历的非递归算法171
5.4.4非递归遍历算法的应用举例176
5.4.5二叉树的计数178
5.5线索二叉树181
5.5.1线索二叉树的概念182
5.5.2线索二叉树的种类182
5.5.3中序线索二叉树的建立和遍历183
5.5.4前序与后序线索二叉树185
5.6树与森林187
5.6.1树的存储表示187
5.6.2森林与二叉树的转换190
5.6.3树与森林的深度优先遍历192
5.6.4树与森林的广度优先遍历194
5.6.5树遍历算法的应用举例195
小结196
习题197
第6章 树与二叉树的应用201
6.1二叉查找树201
6.1.1二叉查找树的概念201
6.1.2二叉查找树的查找202
6.1.3二叉查找树的插入203
6.1.4二叉查找树的删除205
6.1.5二叉查找树的性能分析207
6.2 AVL树209
6.2.1 AVL树的概念209
6.2.2平衡化旋转210
6.2.3 AVL树的插入212
6.2.4 AVL树的删除214
6.2.5 AVL树的性能分析216
6.3 Huffman树218
6.3.1带权路径长度的概念218
6.3.2 Huffman树的概念219
6.3.3最优判定树222
6.3.4 Huffman编码224
6.4堆225
6.4.1小根堆和大根堆225
6.4.2堆的建立227
6.4.3堆的插入228
6.4.4堆的删除230
6.5并查集230
6.5.1并查集的定义及其实现230
6.5.2并查集操作的分析和改进232
6.6八皇后问题与树的剪枝234
6.6.1八皇后问题的提出234
6.6.2八皇后问题的状态树235
6.6.3八皇后问题算法237
小结238
习题238
第7章图242
7.1图的基本概念242
7.1.1与图有关的若干概念242
7.1.2图的基本操作245
7.2图的存储结构247
7.2.1图的邻接矩阵表示247
7.2.2图的邻接表表示251
7.2.3邻接矩阵表示与邻接表表示的比较256
7.2.4图的邻接多重表表示256
7.3图的遍历258
7.3.1深度优先搜索258
7.3.2广度优先搜索260
7.3.3连通分量261
7.3.4重连通图263
7.3.5有向图的强连通分量265
7.4最小生成树267
7.4.1最小生成树求解和贪婪法267
7.4.2 Kruskal算法269
7.4.3 Prim算法272
7.5最短路径274
7.5.1非负权重的单源最短路径274
7.5.2所有顶点之间的最短路径278
7.5.3无权重的最短路径281
7.6活动网络282
7.6.1 AOV网络与拓扑排序282
7.6.2 AOE网络与关键路径法286
小结291
习题291
第8章 查找297
8.1查找的基本概念297
8.1.1查找的概念297
8.1.2查找算法的性能分析298
8.2顺序查找法298
8.2.1在顺序表上的顺序查找算法298
8.2.2在线性链表上的顺序查找算法302
8.3折半查找法302
8.3.1折半查找法302
8.3.2次优查找树:折半查找的改进方法305
8.3.3斐波那契查找:折半查找的变形310
8.3.4插值查找:折半查找的变形312
8.4 B树313
8.4.1索引顺序表与分块查找313
8.4.2多级索引结构与m叉查找树315
8.4.3 B树的概念316
8.4.4 B树上的查找317
8.4.5 B树上的插入318
8.4.6 B树上的删除320
8.4.7 B+树321
8.5散列表及其查找324
8.5.1散列的概念324
8.5.2常见的散列函数325
8.5.3解决冲突的开地址法328
8.5.4解决冲突的链地址法335
8.5.5散列法分析337
小结338
习题339
第9章 内排序344
9.1排序的概念344
9.1.1排序的概念344
9.1.2排序算法的性能345
9.1.3数据表的结构定义346
9.2插入排序347
9.2.1直接插入排序347
9.2.2基于链表的直接插入排序349
9.2.3折半插入排序350
9.2.4希尔排序352
9.3交换排序353
9.3.1起泡排序354
9.3.2快速排序356
9.3.3快速排序的改进算法359
9.4选择排序360
9.4.1简单选择排序361
9.4.2堆排序362
9.4.3锦标赛排序366
9.5归并排序367
9.5.1二路归并排序的设计思路367
9.5.2二路归并排序的递归算法367
9.5.3基于链表的归并排序算法369
9.5.4迭代的归并排序算法371
9.6基数排序373
9.6.1基数排序373
9.6.2 MSD基数排序374
9.6.3 LSD基数排序376
9.7内排序算法的分析和比较379
9.7.1排序方法的下界379
9.7.2分布计数排序380
9.7.3各种内排序方法的比较381
小结384
习题385
第10章 外排序389
10.1主存储器和外存储器389
10.1.1磁带389
10.1.2磁盘存储器390
10.1.3缓冲区391
10.2基于磁盘的外排序过程392
10.2.1基于磁盘排序的过程392
10.2.2基于磁盘排序的性能分析393
10.3 m路平衡归并394
10.3.1 m路平衡归并的过程394
10.3.2用败者树选最小记录395
10.3.3败者树的构造396
10.4初始归并段的生成398
10.4.1置换-选择排序398
10.4.2用败者树实现置换-选择排序398
10.4.3用小根堆实现置换-选择排序399
10.4.4置换-选择排序的性能分析402
10.5最佳归并树403
10.6并行操作的缓冲区处理405
10.6.1使用固定缓冲区实现并行操作405
10.6.2使用缓冲区队列实现并行操作405
10.7磁带归并排序407
10.7.1平衡归并排序408
10.7.2多步归并排序408
10.7.3多步归并排序初始归并段的分配409
小结410
习题411
附录A程序索引413
附录B实训作业要求与样例420
参考文献426
热门推荐
- 2874588.html
- 2374681.html
- 2714535.html
- 2107223.html
- 206216.html
- 1621667.html
- 3664612.html
- 2435031.html
- 2813278.html
- 560126.html
- http://www.ickdjs.cc/book_204905.html
- http://www.ickdjs.cc/book_817365.html
- http://www.ickdjs.cc/book_3026260.html
- http://www.ickdjs.cc/book_1824889.html
- http://www.ickdjs.cc/book_705117.html
- http://www.ickdjs.cc/book_2997048.html
- http://www.ickdjs.cc/book_405022.html
- http://www.ickdjs.cc/book_960067.html
- http://www.ickdjs.cc/book_2636095.html
- http://www.ickdjs.cc/book_2387386.html