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

  • 购买积分:11 如何计算积分?
  • 作  者:郝春梅,齐景嘉主编;董春波,卢金昊,吴波副主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302228141
  • 页数:262 页
图书介绍:本书系统几少了各种常用的数据结构以及查找、排序算法,对每种数据结构及实例作为切入点,详细阐述了基本概念、逻辑结构、存储表示、基本操作以及相关的应用。

第1章 绪论 1

1.1 引言 1

1.2 基本概念与术语 4

1.3 抽象数据类型 9

1.3.1 数据类型 9

1.3.2 抽象数据类型概述 10

1.4 算法和算法分析 11

1.4.1 算法的基本概念 11

1.4.2 算法的时间复杂度 14

1.4.3 算法的空间复杂度 16

本章小结 16

习题 17

第2章 线性表 19

2.1 线性表的定义及其基本操作 19

2.1.1 线性表的引例 19

2.1.2 线性表的定义 20

2.1.3 线性表的基本操作 20

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

2.2.1 顺序表结构 20

2.2.2 顺序表的基本操作 22

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

2.3.1 链式存储结构 26

2.3.2 单链表上的基本运算 26

2.3.3 循环链表和双向链表 33

2.4 顺序表与链表的比较 36

2.5 线性表的应用 36

本章小结 43

习题 43

第3章 栈和队列 47

3.1 栈 47

3.1.1 栈的引例 47

3.1.2 栈的定义及基本操作 47

3.1.3 栈的顺序存储表示和操作的实现 48

3.1.4 栈的链式存储表示和操作的实现 51

3.2 栈的应用 53

3.3 队列 56

3.3.1 队列的引例 56

3.3.2 队列的定义及基本操作 56

3.3.3 队列的顺序存储表示和操作的实现 57

3.3.4 队列的链式存储表示和操作的实现 61

3.4 队列的应用 64

本章小结 66

习题 67

第4章 串 71

4.1 串的定义及基本操作 71

4.1.1 串的基本概念 71

4.1.2 串的基本操作 72

4.2 串的存储结构 73

4.2.1 串的顺序存储结构 73

4.2.2 串的堆式存储 78

4.2.3 串的块链式存储结构 81

4.3 串的应用 81

本章小结 84

习题 84

第5章 数组 86

5.1 数组的定义和运算 86

5.2 数组的顺序存储结构 87

5.3 矩阵的压缩存储结构 89

5.3.1 特殊矩阵 89

5.3.2 稀疏矩阵 91

5.4 广义表的定义 94

5.5 广义表的存储结构 95

5.5.1 头尾表示法 95

5.5.2 孩子兄弟表示法 96

5.6 数组的应用 97

本章小结 101

习题 101

第6章 树和二叉树 104

6.1 树的概念和基本操作 104

6.1.1 树的引例 104

6.1.2 树的定义和基本术语 104

6.1.3 树的基本操作 106

6.2 二叉树 107

6.2.1 二叉树的定义 107

6.2.2 二叉树的性质 107

6.2.3 二叉树的基本操作 109

6.3 二叉树的存储结构 110

6.3.1 顺序存储结构 110

6.3.2 链式存储结构 110

6.4 二叉树的遍历 112

6.4.1 先序遍历 112

6.4.2 中序遍历 113

6.4.3 后序遍历 113

6.4.4 层次遍历 114

6.5 线索二叉树 115

6.5.1 线索二叉树的概念 115

6.5.2 中序线索二叉树的构造算法 116

6.5.3 线索二叉树的遍历 117

6.6 哈夫曼树及其应用 119

6.6.1 哈夫曼树的定义 119

6.6.2 构造哈夫曼树 120

6.6.3 哈夫曼树的应用 122

6.7 树与森林 124

6.7.1 树的存储结构 124

6.7.2 树、森林与二叉树的转换 126

6.8 二叉树的应用 128

本章小结 131

习题 131

第7章 图 135

7.1 图的定义和术语 135

7.1.1 图的引例 135

7.1.2 图的定义 136

7.1.3 图的基本术语 136

7.2 图的存储结构 139

7.2.1 邻接矩阵 139

7.2.2 邻接链表 141

7.3 图的遍历 144

7.3.1 深度优先搜索 144

7.3.2 广度优先搜索 147

7.4 最小生成树 149

7.4.1 普里姆(Prim)算法 149

7.4.2 克鲁斯卡尔(Kruskal)算法 150

7.5 最短路径 151

7.5.1 单源最短路径 151

7.5.2 每一对顶点之间的最短路径 153

7.6 AOV网拓扑排序 157

7.6.1 AOV网 157

7.6.2 AOV网拓扑排序 158

7.7 图的应用 162

本章小结 166

习题 166

第8章 查找 170

8.1 基本概念 170

8.2 静态查找表 171

8.2.1 顺序查找 171

8.2.2 折半查找 173

8.2.3 分块查找 175

8.3 动态查找表 176

8.3.1 二叉排序树的概念 176

8.3.2 二叉排序树的查找 177

8.3.3 二叉排序树的插入和生成 178

8.3.4 二叉排序树的删除 179

8.3.5 二叉排序树查找算法效率分析 180

8.4 哈希表查找 181

8.4.1 哈希表的概念 181

8.4.2 哈希函数的构造方法 181

8.4.3 处理冲突的方法 182

8.4.4 哈希表的查找 184

8.5 查找的应用 185

本章小结 188

习题 189

第9章 排序 191

9.1 基本概念 191

9.2 插入排序 192

9.2.1 直接插入排序 192

9.2.2 希尔排序 194

9.3 交换排序 195

9.3.1 冒泡排序 195

9.3.2 快速排序 197

9.4 选择排序 200

9.4.1 直接选择排序 200

9.4.2 堆排序 201

9.5 归并排序 205

9.6 各种内部排序方法的比较 207

9.7 排序的应用 208

本章小结 210

习题 211

附录A 习题答案 213

附录B 数据结构实训及答案 233

参考文献 261