《数据结构与算法》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:李乔祥编著
  • 出 版 社:北京:冶金工业出版社
  • 出版年份:2004
  • ISBN:7502435077
  • 页数:284 页
图书介绍:本书内容广泛,包括顺序表、链表、串、数组、数、图等一般数据结构的基础理论知识,在基础理论上是一些与计算机技术联系比较密切并广泛的应用内容。

3.6逐步求精法 7 1

第1章 概论 1

1.1什么是数据结构 1

目 录 1

1.2数据的逻辑结构 3

1.3数据的类型 4

1.4数据的存储结构 6

1.5数据的运算 8

1.6数据的分析和性能评价 12

1.6.1算法设计的要求 12

1.6.2选择数据结构 13

1.6.3算法效率的度量 13

1.6.4算法的存储空间需求 14

小结 15

综合练习一 15

一、选择题 15

小结 1 16

二、思考题 16

三、上机题 17

第2章类C语言基础知识 18

2.1.1 C语言简史 18

2.1 C语言简介 18

2.1.2特点 19

2.1.3 C语言程序的结构 19

2.2 C语言数据类型 19

2.2.1常量与变量 19

2.2.2基本类型 20

2.2.3构造类型 20

2.2.4其他重要数据类型 22

2.3 C语言运算符与表达式 23

2.3.1 算术运算 23

2.3.2逻辑运算 24

2.3.3位运算 24

2.3.4其他重要运算符 24

2.4 C语言函数 25

2.3.5 运算符的优先级 25

2.4.2 函数的调用 26

2.4.1定义函数 26

2.4.3 函数的返回 27

2.5 C语言常用语句 28

2.5.1输入/输出语句 28

2.5.2条件语句、开关语句 29

2.5.3循环语句 30

2.6综合应用实例 33

二、思考题 1 35

三、上机题 1 36

一、选择题 38

小结 38

综合练习二 38

二、思考题 39

三、上机题 40

第3章算法基础 42

3.1 递归法 42

3.1.1递归的概念 42

3.1.2递归过程和递归工作栈 46

3.1.3递归的应用 50

3.2穷举法 54

3.3迭代法 57

3.4.1 倒推法 59

3.4递推法 59

3.4.2顺推法 61

3.5 分治法 65

3.5.1分治法的设计思想 65

3.5.2分治法所能解决的问题 65

3.5.3分治法的几种变形 70

小结 73

综合练习三 73

一、选择题 73

二、思考题 74

三、上机题 74

4.1 向量 75

4.1.1向量的运算 75

第4章顺序表 75

4.1.2 Josephus问题 77

4.2栈 78

4.3.1数制转换 81

4.3栈的应用 81

4.3.2表达式求值 82

4.3.3迷宫求解 84

4.4 队列 87

4.5利用队列打印二次展开式的算法 89

4.6限制存取点的表 91

小结 91

综合练习四 91

一、选择题 91

二、思考题 91

三、上机题 92

5.1 单链表 93

第5章链表 93

5.2栈的链表表示 96

5.3队列的链表表示 97

5.4特殊的链表 99

5.4.1 双向链表 99

5.4.2循环链表 100

5.4.3队列的循环链表表示 101

5.5一元多项式的链表表示及其运算 101

小结 104

综合练习五 104

一、选择题 104

二、思考题 105

三、上机题 106

第6章 串 107

6.1 串的概念 107

6.2串的运算实现 110

6.2.1基本的串运算 110

6.2.2串运算的实现 111

6.3字符串的模式匹配 112

6.4 KMP算法 113

综合练习六 116

一、选择题 116

二、思考题 116

三、上机题 117

第7章 多维数组与广义表 118

7.1多维数组的定义 118

7.2多维数组的逻辑结构 119

7.3多维数组的顺序存储 119

7.4矩阵的压缩存储 120

7.4.1 特殊矩阵 121

7.4.2稀疏矩阵 122

7.5 广义表 127

7.5.1 广义表的定义 127

7.5.2 广义表的存储结构 128

7.5.3 广义表的运算 130

小结 134

综合练习七 134

一、选择题 134

第8章树和森林 138

8.1树的定义和基本术语 138

8.2 二叉树 140

8.2.1二叉树的定义 140

8.2.2二叉树的性质 141

8.2.3二叉树的存储结构 142

8.3.1遍历的递归算法 143

8.3遍历二叉树 143

8.3.2遍历的非递归算法 145

8.4线索二叉树 148

8.4.1线索化二叉树 148

8.4.2遍历线索二叉树 150

8.5树的存储结构 152

8.6森林和二叉树的转换 154

8.7树和森林的遍历 155

8.8.1最优二叉树 156

8.8赫夫曼树及其应用 156

8.8.2赫夫曼编码 158

小结 160

综合练习八 160

一、选择题 160

二、思考题 161

三、上机题 161

9.1 基本概念 162

第9章查找 162

9.2线性表的查找 163

9.2.1 顺序查找 163

9.2.2二分查找 164

9.2.3 分块查找 166

9.3树表的查找 168

9.3.1 二叉排序树 168

9.3.2平衡的二叉排序树 173

9.4散列表的查找 176

9.4.1 散列表 176

9.4.2散列函数的构造方法 176

9.4.3冲突的处理 178

小结 180

综合练习九 180

一、选择题 180

三、上机题 181

二、思考题 181

第10章 图 182

10.1 图的定义和术语 182

10.2图的存储结构 184

10.2.1数组表示法 184

10.2.2邻接表表示法 185

10.2.3十字链表 188

10.2.4邻接多重表 189

10.3图的遍历 190

10.3.1深度优先搜索 190

10.3.2广度优先搜索 191

10.4图的连通性 192

10.5图的最小生成树 193

10.6拓扑排序 196

10.7关键路径(图) 197

10.8最短路径 199

10.8.1从一个结点到其他各个结点的最短路径 200

10.8.2任意两个结点的最短路径 202

小结 203

综合练习十 203

一、选择题 203

二、思考题 204

三、上机题 205

第11章排序 206

11.1概述 206

1 1.2插入排序 208

11.2.1直接插入排序 208

1 1.2.2折半插入排序 210

11.2.3表插入排序 210

11.2.4希尔排序 211

11.3交换排序 213

11.3.1起泡排序 213

11.3.2快速排序 215

11.4.1直接选择排序 216

11.4选择排序 216

1 1.4.2锦标赛排序 217

11.4.3堆排序 218

11.5归并排序 221

1 1.5.1 归并 221

11.5.2迭代的归并排序算法 222

11.5.3递归的表归并排序 223

1 1.6基数排序 224

1 1.6.1多排序码排序 224

1 1.6.2链式基数排序 225

1 1.7外排序 228

11.7.1外排序的基本过程 228

11.7.2 K路平衡归并 229

11.7.3初始归并段的生成 231

11.7.4并行操作的缓冲区处理 232

11.7.5最佳归并树 233

小结 234

综合练习十一 235

一、选择题 235

二、思考题 236

三、上机题 236

第12章文件 237

12.1文件基本概念 237

12.2顺序文件 238

12.3索引文件 239

12.4 Hash文件 240

12.5多关键字文件 241

小结 242

综合练习十二 242

一、选择题 242

二、思考题 242

三、上机题 242

13.1回溯与界限剪枝法 243

第13章算法设计基本方法 243

13.1.1 回溯与界限剪枝法经典问题 244

13.1.2回溯与界限剪枝法概述 245

13.1.3 回溯与界限剪枝法实例分析 246

13.1.4回溯与界限剪枝法综述 251

13.2贪心法 251

13.2.1贪心法经典问题 251

13.2.2贪心法概述 253

13.2.3贪心法实例分析 254

13.2.4贪心法小结 255

13.3动态规划法 255

13.3.1动态规划法经典问题 255

13.3.2动态规划法概述 256

13.3.3动态规划法实例分析 258

综合练习十三 264

一、选择题 264

小结 264

13.3.4动态规划法小结 264

二、思考题 265

三、上机题 265

参考答案 267

第1章 267

第2章 267

第3章 268

第4章 269

第5章 271

第6章 272

第7章 274

第8章 275

第9章 276

第10章 277

第11章 279

第12章 281

第13章 282

参考文献 284