《数据结构 用C语言描述 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:耿国华,张德同,周明全等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2015
  • ISBN:7040433052
  • 页数:362 页
图书介绍:本书根据教育部计算机科学与技术教学指导委员会制定的《数据结构与算法》课程大纲和《全国硕士计算机专业基础综合考试大纲》的要求而编写,跟踪技术发展需要,教材体系科学,内容简洁实用。本书共分10章,内容包括基本概念、基本结构(线性表、栈和队列、串、数组与广义表、树、图)和基本技术(查找方法与排序方法)三大部分,其中贯穿了程序设计中参数传递技术、动态处理的指针技术、数组技术、递归技术与队列等技术。书中给出了许多经典算法,每章均附有技术小结与典型题例,便于总结提高。附录给出了2套本科课程考题样卷、2套硕士生入学考试样卷,还给出了近年来国家计算机硕士生专业考试中《数据结构》大纲和试题,附有解答提示,便于读者模拟练习和考研参考。本书是国家精品课程配套教材,集作者多年教学实践经验,吸纳了其他院校同行的建议,采用面向对象的方法讲述数据结构技术,用C语言描述算法。配有大量的例题、习题、实习题,连贯性强。随书配套光盘教学资源丰富,包括部分扩展内容、课程设计与课程实习指导、多媒体教学课件、算法程序示例和算法转换为程序的模板。本书PPT教案可从中国高校计算机课程网上免费下载,更多教学资源请浏览国家精品课程网站和

第1章 绪论 1

1.1 数据结构的基础概念 1

1.2 数据结构的内容 7

1.3 算法 9

1.4 算法描述 11

1.5 算法性能评价 12

1.5.1 算法的时间性能分析 12

1.5.2 算法的空间性能分析 17

1.5.3 算法性能选择 18

1.6 数据结构与C语言表示 18

1.6.1 数据结构与程序设计的关联性 18

1.6.2 结构化程序设计与函数的模块化 19

1.6.3 面向对象与抽象数据类型 20

1.6.4 算法描述规范与设计风格 25

1.7 关于学习数据结构 32

1.8 总结与提高 35

习题 35

实习题 37

第2章 线性表 38

2.1 线性表的概念及其抽象数据类型定义 38

2.1.1 线性表的逻辑结构 38

2.1.2 线性表的抽象数据类型定义 39

2.2 线性表的顺序存储 40

2.2.1 线性表的顺序存储结构 40

2.2.2 线性表顺序存储结构上的基本运算 42

2.3 线性表的链式存储 47

2.3.1 单链表 47

2.3.2 单链表上的基本运算 49

2.3.3 循环链表 57

2.3.4 双向链表 59

2.3.5 静态链表 62

2.4 线性表应用——一元多项式的表示及相加 64

2.5 顺序表与链表的综合比较 68

2.5.1 顺序表和链表的比较 68

2.5.2 线性表链式存储方式的比较 69

2.6 总结与提高 70

2.6.1 主要知识点 70

2.6.2 典型题例 71

习题 74

实习题 76

第3章 限定性线性表——栈与队列 78

3.1 栈 78

3.1.1 栈的定义 78

3.1.2 栈的表示和实现 80

3.1.3 栈的应用举例 86

3.1.4 栈与递归的实现 90

3.2 队列 97

3.2.1 队列的定义 97

3.2.2 队列的表示和实现 99

3.2.3 队列的应用举例 103

3.3 总结与提高 107

3.3.1 主要知识点 107

3.3.2 典型题例 108

习题 110

实习题 111

第4章 串 113

4.1 串的基本概念 113

4.2 串的存储实现 115

4.2.1 定长顺序串 115

4.2.2 堆串 119

4.2.3 块链串 121

4.3 串的应用举例:简单的行编辑器 122

4.4 总结与提高 123

4.4.1 主要知识点 123

4.4.2 典型题例 124

习题 125

实习题 126

第5章 数组与广义表 127

5.1 数组的定义与运算 127

5.2 数组的顺序存储与实现 129

5.3 特殊矩阵的压缩存储 132

5.3.1 规律分布的特殊矩阵 132

5.3.2 稀疏矩阵 135

5.4 广义表 144

5.4.1 广义表的概念 144

5.4.2 广义表的存储结构 145

5.4.3 广义表的操作实现 147

5.5 总结与提高 149

5.5.1 主要知识点 149

5.5.2 典型题例 150

习题 151

实习题 152

第6章 树与二叉树 153

6.1 树的定义与基本术语 153

6.2 二叉树 157

6.2.1 二叉树的定义与基本操作 157

6.2.2 二叉树的性质 158

6.2.3 二叉树的存储结构 160

6.3 二叉树的遍历与线索化 162

6.3.1 二叉树的遍历 162

6.3.2 遍历算法应用 165

6.3.3 基于栈的递归消除 170

6.3.4 线索二叉树 175

6.3.5 由遍历序列确定二叉树 179

6.4 树、森林和二叉树的关系 180

6.4.1 树的存储结构 181

6.4.2 树、森林与二叉树的相互转换 183

6.4.3 树与森林的遍历 186

6.5 哈夫曼树及其应用 188

6.5.1 哈夫曼树 188

6.5.2 哈夫曼编码 193

6.6 并查集与等价类划分 198

6.7 总结与提高 203

6.7.1 主要知识点 203

6.7.2 典型题例 204

习题 207

实习题 209

第7章 图 211

7.1 图的定义与基本术语 211

7.1.1 图的定义 211

7.1.2 基本术语 213

7.2 图的存储结构 216

7.2.1 邻接矩阵表示法 216

7.2.2 邻接表表示法 219

7.2.3 十字链表 221

7.2.4 邻接多重表 223

7.3 图的遍历 225

7.3.1 深度优先搜索 225

7.3.2 广度优先搜索 229

7.4 图的应用 231

7.4.1 图的连通性问题 231

7.4.2 有向无环图的应用 239

7.4.3 最短路径问题 249

7.5 总结与提高 255

7.5.1 主要知识点 255

7.5.2 典型题例 256

习题 259

实习题 262

第8章 查找 264

8.1 查找的基本概念 264

8.2 基于线性表的查找法 265

8.2.1 顺序查找法 265

8.2.2 折半查找法 266

8.2.3 分块查找法 269

8.3 基于树的查找法 271

8.3.1 二叉排序树 271

8.3.2 平衡二叉排序树 278

8.3.3 B树 288

8.4 计算式查找法——哈希法 298

8.4.1 哈希函数的构造方法 300

8.4.2 处理冲突的方法 302

8.4.3 哈希表的查找过程 304

8.4.4 哈希法性能分析 305

8.5 总结与提高 308

8.5.1 主要知识点 308

8.5.2 典型题例 311

习题 314

实习题 315

第9章 内部排序 317

9.1 排序的基本概念 317

9.2 插入类排序 318

9.2.1 直接插入排序 319

9.2.2 折半插入排序 321

9.2.3 希尔排序 322

9.2.4 小结 325

9.3 交换类排序 326

9.3.1 冒泡排序 326

9.3.2 快速排序 328

9.3.3 小结 331

9.4 选择类排序 332

9.4.1 简单选择排序 332

9.4.2 树形选择排序 333

9.4.3 堆排序 335

9.4.4 小结 341

9.5 归并排序 342

9.6 分配类排序 344

9.6.1 多关键字排序 344

9.6.2 链式基数排序 345

9.6.3 基数排序的顺序表实现 349

9.7 各种排序方法的综合比较 349

9.8 总结与提高 351

9.8.1 主要知识点 351

9.8.2 典型题例 352

习题 355

实习题 357

第10章 外部排序 358

10.1 外排序的基本方法 358

10.1.1 磁盘排序 358

10.1.2 磁带排序 359

10.2 总结与提高 360

习题 360

参考文献 361