图书介绍
零基础学数据结构 第2版,丛书畅销30万册,全新版隆重上市PDF|Epub|txt|kindle电子书版本网盘下载
![零基础学数据结构 第2版,丛书畅销30万册,全新版隆重上市](https://www.shukui.net/cover/42/30683962.jpg)
- 陈锐,成建设等编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111468615
- 出版时间:2014
- 标注页数:471页
- 文件大小:75MB
- 文件页数:490页
- 主题词:数据结构
PDF下载
下载说明
零基础学数据结构 第2版,丛书畅销30万册,全新版隆重上市PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 基础知识1
第1章 数据结构概述1
1.1 为什么要学习数据结构1
1.2 基本概念和术语2
1.3 数据的逻辑结构与存储结构4
1.3.1 逻辑结构4
1.3.2 存储结构4
1.4 抽象数据类型及其描述5
1.4.1 什么是抽象数据类型5
1.4.2 抽象数据类型的描述6
1.5 算法8
1.5.1 数据结构与算法的关系8
1.5.2 什么是算法8
1.5.3 算法的五大特性9
1.5.4 算法的描述9
1.6 算法分析10
1.6.1 算法设计的4个目标11
1.6.2 算法效率评价11
1.6.3 算法的时间复杂度12
1.6.4 算法的空间复杂度14
1.7 学好数据结构的秘诀14
1.8 习题15
第2章 C语言基础17
2.1 C语言开发环境17
2.1.1 Turbo C2.0开发环境17
2.1.2 Visual C++++ 6.0开发环境19
2.2 递归与非递归22
2.2.1 函数的递归调用22
2.2.2 递归应用举例23
2.2.3 迭代与递归26
2.3 指针27
2.3.1 什么是指针27
2.3.2 指针变量的间接引用28
2.3.3 指针与数组29
2.3.4 指针函数与函数指针34
2.4 参数传递40
2.4.1 传值调用40
2.4.2 传地址调用42
2.5 结构体与联合体44
2.5.1 结构体的定义45
2.5.2 指向结构体的指针47
2.5.3 用typedef定义数据类型48
2.5.4 联合体49
2.6 链表54
2.6.1 内存的动态分配与释放54
2.6.2 什么是链表55
2.6.3 创建链表55
2.6.4 链表的输出操作58
2.6.5 链表的插入操作60
2.6.6 链表的删除操作64
2.6.7 链表的综合操作66
2.6.8 链表应用举例:一元多项式的相加67
2.7 小结73
2.8 习题74
第二篇 线性数据结构77
第3章 线性表77
3.1 线性表的定义及抽象数据类型77
3.1.1 线性表的逻辑结构77
3.1.2 线性表的抽象数据类型78
3.2 线性表的顺序表示与实现79
3.2.1 线性表的顺序存储结构79
3.2.2 顺序表的基本运算80
3.2.3 顺序表的实现算法分析83
3.2.4 顺序表的优缺点83
3.2.5 顺序表应用举例84
3.3 线性表的链式表示与实现89
3.3.1 单链表的存储结构90
3.3.2 单链表上的基本运算91
3.3.3 单链表存储结构与顺序存储结构的优缺点96
3.3.4 单链表应用举例97
3.4 循环单链表104
3.4.1 循环链表的链式存储104
3.4.2 循环单链表应用举例106
3.5 双向链表108
3.5.1 双向链表的存储结构108
3.5.2 双向链表的插入和删除操作109
3.5.3 双向链表应用举例111
3.6 静态链表113
3.6.1 静态链表的存储结构114
3.6.2 静态链表的基本运算114
3.6.3 静态链表应用举例117
3.7 综合案例:一元多项式的表示与相乘118
3.7.1 一元多项式的表示118
3.7.2 一元多项式相乘119
3.8 小结123
3.9 习题123
第4章 栈127
4.1 栈的定义与抽象数据类型127
4.1.1 什么是栈127
4.1.2 栈的抽象数据类型128
4.2 栈的顺序表示与实现128
4.2.1 栈的顺序存储结构128
4.2.2 顺序栈的基本运算129
4.2.3 顺序栈应用举例131
4.3 栈的链式表示与实现136
4.3.1 栈的链式存储结构137
4.3.2 链栈的基本运算137
4.3.3 链栈应用举例140
4.4 栈的典型应用141
4.4.1 括号匹配141
4.4.2 求算术表达式的值144
4.4.3 迷宫求解151
4.5 栈与递归156
4.5.1 递归156
4.5.2 消除递归160
4.6 小结162
4.7 习题163
第5章 队列165
5.1 队列的定义与抽象数据类型165
5.1.1 什么是队列165
5.1.2 队列的抽象数据类型165
5.2 队列的顺序存储及实现166
5.2.1 顺序队列的表示166
5.2.2 顺序队列的“假溢出”167
5.2.3 顺序循环队列的表示167
5.2.4 顺序循环队列的基本运算169
5.2.5 顺序循环队列举例170
5.3 队列的链式存储及实现172
5.3.1 链式队列的表示172
5.3.2 链式队列的基本运算173
5.3.3 链式队列举例175
5.4 双端队列179
5.4.1 什么是双端队列179
5.4.2 双端队列的应用179
5.5 综合案例:动画模拟停车场管理系统181
5.6 小结194
5.7 习题194
第6章 串197
6.1 串的定义及抽象数据类型197
6.1.1 什么是串197
6.1.2 串的抽象数据类型198
6.2 串的顺序表示与实现199
6.2.1 串的顺序存储结构199
6.2.2 顺序串的基本运算200
6.2.3 顺序串应用举例203
6.3 串的堆分配表示与实现205
6.3.1 堆分配的存储结构205
6.3.2 堆串的基本运算205
6.4 串的块链式存储表示与实现208
6.4.1 串的块链式存储结构208
6.4.2 块链串的基本运算209
6.5 串的模式匹配212
6.5.1 朴素模式匹配算法——Brute-Force212
6.5.2 KMP算法214
6.5.3 模式匹配应用举例219
6.6 小结223
6.7 习题224
第7章 数组226
7.1 数组的定义及抽象数据类型226
7.1.1 重新认识数组226
7.1.2 数组的抽象数据类型227
7.2 数组的顺序表示与实现227
7.2.1 数组的顺序存储结构227
7.2.2 数组的基本运算229
7.2.3 数组应用举例231
7.3 特殊矩阵的压缩存储233
7.3.1 对称矩阵的压缩存储233
7.3.2 三角矩阵的压缩存储233
7.3.3 对角矩阵的压缩存储235
7.4 稀疏矩阵的压缩存储236
7.4.1 什么是稀疏矩阵236
7.4.2 稀疏矩阵抽象数据类型236
7.4.3 稀疏矩阵的三元组表示236
7.4.4 稀疏矩阵的三元组实现237
7.5 稀疏矩阵应用举例241
7.5.1 三元组表示的稀疏矩阵相加241
7.5.2 三元组表示的稀疏矩阵相乘244
7.6 稀疏矩阵的十字链表表示与实现249
7.6.1 稀疏矩阵的十字链表表示249
7.6.2 十字链表的基本运算250
7.7 小结252
7.8 习题252
第8章 广义表254
8.1 广义表的定义及抽象数据类型254
8.1.1 什么是广义表254
8.1.2 广义表的抽象数据类型255
8.2 广义表的头尾链表表示与实现255
8.2.1 广义表的头尾链表存储结构255
8.2.2 广义表的基本运算256
8.2.3 广义表应用举例(采用头尾链表存储结构)259
8.3 广义表的扩展线性链表表示与实现263
8.3.1 广义表的扩展线性链表存储结构263
8.3.2 广义表的基本运算264
8.3.3 广义表应用举例(扩展线性链表存储结构)266
8.4 小结269
8.5 习题269
第三篇 非线性数据结构271
第9章 树271
9.1 树的相关概念及抽象数据类型271
9.1.1 什么是树271
9.1.2 树的相关概念272
9.1.3 树的逻辑表示272
9.1.4 树的抽象数据类型273
9.1.5 树的存储结构274
9.2 二叉树的相关概念及抽象数据类型277
9.2.1 什么是二叉树277
9.2.2 二叉树的性质277
9.2.3 二叉树的抽象数据类型280
9.3 二叉树的存储表示与实现281
9.3.1 二叉树的顺序存储281
9.3.2 二叉树的链式存储282
9.3.3 二叉树的基本运算282
9.4 遍历二叉树285
9.4.1 什么是遍历二叉树285
9.4.2 遍历二叉树286
9.4.3 非递归遍历二叉树——基于栈的递归消除288
9.5 遍历二叉树的应用290
9.5.1 按层次输出二叉树290
9.5.2 二叉树的计数291
9.5.3 求叶子结点的最大最小枝长293
9.5.4 判断两棵二叉树是否相似294
9.5.5 交换二叉树的左右子树294
9.5.6 求根结点到r结点之间的路径294
9.6 线索二叉树296
9.6.1 什么是线索化二叉树296
9.6.2 线索二叉树297
9.6.3 遍历线索二叉树298
9.6.4 线索二叉树应用举例300
9.7 树、森林与二叉树304
9.7.1 树转换为二叉树304
9.7.2 森林转换为二叉树305
9.7.3 二叉树转换为树和森林306
9.7.4 树和森林的遍历306
9.7.5 树与二叉树应用举例307
9.8 综合案例:哈夫曼树320
9.8.1 什么是哈夫曼树320
9.8.2 哈夫曼编码322
9.8.3 哈夫曼编码算法的实现322
9.9 小结326
9.10 习题327
第10章 图330
10.1 图的定义与相关概念330
10.1.1 什么是图330
10.1.2 图的相关概念331
10.1.3 图的抽象数据类型333
10.2 图的存储结构334
10.2.1 邻接矩阵(数组表示法)334
10.2.2 邻接表338
10.2.3 十字链表343
10.2.4 邻接多重链表344
10.3 图的遍历345
10.3.1 图的深度优先搜索345
10.3.2 图的广度优先搜索348
10.4 图的连通性问题349
10.4.1 无向图的连通分量与最小生成树349
10.4.2 最小生成树351
10.5 有向无环图359
10.5.1 AOV网与拓扑排序360
10.5.2 AOE网与关键路径362
10.6 最短路径367
10.6.1 从某个顶点到其余各顶点的最短路径367
10.6.2 每一对顶点之间的最短路径372
10.6.3 最短路径应用举例374
10.7 图的应用举例375
10.8 小结383
10.9 习题383
第四篇 查找与排序387
第11章 查找387
11.1 基本概念387
11.2 静态查找388
11.2.1 顺序表的查找388
11.2.2 有序顺序表的查找389
11.2.3 索引顺序表的查找391
11.2.4 静态查找应用举例393
11.3 动态查找395
11.3.1 二叉排序树395
11.3.2 平衡二叉树402
11.4 B-树与B+树408
11.4.1 B-树408
11.4.2 B+树415
11.5 哈希表415
11.5.1 什么是哈希表416
11.5.2 哈希函数的构造方法416
11.5.3 处理冲突的方法417
11.5.4 哈希表应用举例419
11.6 小结422
11.7 习题423
第12章 内排序425
12.1 基本概念425
12.2 插入排序426
12.2.1 直接插入排序426
12.2.2 折半插入排序428
12.2.3 希尔排序430
12.2.4 插入排序应用举例431
12.3 交换排序434
12.3.1 冒泡排序434
12.3.2 快速排序437
12.3.3 交换排序应用举例439
12.4 选择排序442
12.4.1 简单选择排序443
12.4.2 堆排序444
12.4.3 选择排序应用举例448
12.5 归并排序451
12.5.1 2路归并排序算法452
12.5.2 归并排序应用举例453
12.6 基数排序455
12.6.1 基数排序算法455
12.6.2 基数排序应用举例458
12.7 小结462
12.8 习题462
第13章 外排序464
13.1 外存的存取特性464
13.2 磁盘排序465
13.2.1 归并排序的基本方法466
13.2.2 多路归并排序467
13.3 磁带排序468
13.3.1 2路归并排序468
13.3.2 多路非平衡归并排序469
13.4 小结470
参考文献471