《数据结构 C语言版》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:王桂芝主编;来社安,孙凌副主编;李丹,吕金龙参编
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2011
  • ISBN:9787113129439
  • 页数:224 页
图书介绍:本书是为“数据结构”课程编写的教材,也可以作为学习数据结构及其算法的C语言程序设计的参考书。书中系统地介绍了各种常用的数据结构与算法方面的基本知识。全书配有大量的例题和详尽的注释,各章都有小结和不同类型的习题。书中自始至终使用C语言来描述算法和数据结构,全部程序都在C?Free3.5或Visual C++ 6.0中调试通过。本书可作为普通高等学校计算机及相关专业本科生的教材,也可以作为专科和成人教育的教材,还可供从事计算机应用的科技人员参考。

第1章 数据结构概述 1

1.1 数据结构课程的性质和地位 1

1.1.1 数据结构课程所讨论的内容 1

1.1.2 数据结构在计算机学科中的地位 4

1.2 基本概念和术语 5

1.2.1 数据结构的相关术语 5

1.2.2 数据的逻辑结构 5

1.2.3 数据的存储结构 6

1.2.4 数据类型和抽象数据类型 7

1.3 算法及算法分析 8

1.3.1 算法的概念 8

1.3.2 算法的设计要求 8

1.3.3 算法的时间复杂度 9

1.3.4 算法的空间复杂度 11

本章小结 11

习题 12

第2章 线性表 15

2.1 线性表的逻辑结构 15

2.1.1 线性表的定义 15

2.1.2 线性表的常用操作 16

2.2 线性表的顺序存储结构 16

2.2.1 顺序表的类型定义 17

2.2.2 顺序表的基本运算 18

2.3 线性表的链式存储结构 21

2.3.1 单链表 21

2.3.2 循环链表 25

2.3.3 双向链表 26

2.3.4 静态链表 28

2.4 两种存储结构的比较 28

2.5 实训 29

本章小结 31

习题 32

第3章 栈和队列 35

3.1 栈 35

3.1.1 栈的定义及常用操作 35

3.1.2 栈的顺序存储结构 36

3.1.3 栈的链式存储结构 40

3.1.4 栈的应用 41

3.2 队列 47

3.2.1 队列的定义及常用操作 47

3.2.2 队列的顺序存储结构 47

3.2.3 队列的链式存储结构 49

3.2.4 队列的应用 51

3.3 实训 52

本章小结 55

习题 56

第4章 串 58

4.1 串的定义及常用操作 58

4.1.1 串的定义及相关术语 58

4.1.2 串的常用操作 59

4.2 串的存储结构 59

4.2.1 串的定长顺序存储结构 60

4.2.2 串的动态顺序存储结构 62

4.2.3 串的链式存储结构 63

4.3 串的模式匹配 63

4.4 串的应用 65

4.5 实训 66

本章小结 68

习题 68

第5章 数组和广义表 71

5.1 数组 71

5.1.1 数组的定义及常用操作 71

5.1.2 数组的顺序存储结构及基本运算 72

5.2 矩阵的压缩存储 73

5.2.1 特殊矩阵 73

5.2.2 稀疏矩阵 76

5.3 广义表 77

5.3.1 广义表的定义及常用操作 78

5.3.2 广义表的存储结构 79

5.3.3 广义表基本操作的实现 82

5.4 实训 83

本章小结 86

习题 87

第6章 树 89

6.1 树的逻辑结构 89

6.1.1 树的定义及逻辑特征 89

6.1.2 树的表示形式 90

6.1.3 树的基本术语 91

6.1.4 树的常用操作 92

6.2 二叉树 92

6.2.1 二叉树的定义及常用操作 92

6.2.2 二叉树的性质 93

6.2.3 二叉树的存储结构 96

6.3 二叉树的遍历 97

6.3.1 二叉树遍历的概念 97

6.3.2 二叉树遍历的算法 98

6.4 构造二叉树 101

6.4.1 由遍历序列构造二叉树 101

6.4.2 构造二叉树的算法 103

6.4.3 二叉树的其他递归算法 104

6.5 线索二叉树 105

6.5.1 线索二叉树的概念 105

6.5.2 二叉树的线索化 106

6.5.3 线索二叉树的主要算法 107

6.6 树和森林 109

6.6.1 树的存储结构 109

6.6.2 树、森林和二叉树的转换 112

6.6.3 树和森林的遍历 115

6.7 哈夫曼树 116

6.7.1 哈夫曼树的定义 116

6.7.2 哈夫曼树的构造算法 118

6.7.3 哈夫曼编码 119

6.8 实训 120

本章小结 123

习题 123

第7章 图 127

7.1 图的定义和术语 127

7.1.1 图的基本概念 128

7.1.2 图的基本操作 130

7.2 图的存储结构 130

7.2.1 邻接矩阵表示法 130

7.2.2 邻接表表示法 131

7.3 图的遍历 132

7.3.1 深度优先搜索 133

7.3.2 广度优先搜索 134

7.4 生成树和最小生成树 136

7.4.1 基本概念 136

7.4.2 普里姆(Prim)算法 137

7.4.3 克鲁斯卡尔(Kruskal)算法 138

7.5 有向无环图及其应用 139

7.5.1 拓扑排序 139

7.5.2 关键路径 142

7.6 最短路径 145

7.6.1 最短路径的概念 145

7.6.2 单源最短路径 145

7.6.3 所有顶点之间的最短路径 148

7.7 实训 151

本章小结 153

习题 154

第8章 查找 158

8.1 查找的基本概念 158

8.2 线性表查找 160

8.2.1 顺序查找 160

8.2.2 折半查找 161

8.2.3 索引查找 164

8.3 树表查找 165

8.3.1 二叉排序树 165

8.3.2 平衡二叉树 170

8.4 哈希表查找 176

8.4.1 哈希表的定义 176

8.4.2 哈希函数的构造 176

8.4.3 冲突处理方法 178

8.4.4 哈希表的查找及其分析 180

8.5 实训 182

本章小结 184

习题 185

第9章 内部排序 189

9.1 排序概述 189

9.1.1 排序的基本概念 190

9.1.2 排序的分类 190

9.1.3 排序算法性能评价 190

9.1.4 排序数据的类型说明 191

9.2 插入排序 191

9.2.1 直接插入排序 191

9.2.2 折半插入排序 193

9.2.3 希尔排序 194

9.3 交换排序 196

9.3.1 冒泡排序 196

9.3.2 快速排序 198

9.4 选择排序 202

9.4.1 简单选择排序 202

9.4.2 树形选择排序 203

9.4.3 堆排序 204

9.5 归并排序 209

9.6 基数排序 211

9.6.1 多关键字排序 211

9.6.2 基数排序 212

9.7 各种内部排序方法的比较 216

9.8 实训 217

本章小结 220

习题 221

参考文献 224