扫描二维码,下载安卓APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:2698585038

数据结构与算法 C语言版 第3版

综合评级:
★★★★★

定价:
¥42.00

作者:
陈琳琳,李建林 主编

出版社:
清华大学出版社

出版日期:
2015年7月

页数:
400

字数:
605000

ISBN:
9787302402534

书籍介绍

“数据结构与算法”是计算机学科研究的主题之一。本书采用类C语言描述,系统地介绍了各种数据结构和排序、查找算法。全书共分为9章,主要内容包括数据结构与算法简介、线性表、栈和队列、串、数组及广义表、树和二叉树、图、查找和排序等。对于各种数据结构,本书给出了基本概念、抽象数据类型以及相关的操作,并且对各种算法的运行时间进行了分析。

本书对数据结构中的重点和难点内容进行了深入的剖析,着重培养学生的动手能力,对经典算法、重点算法及应用算法进行了详细的讲解,以使学生更好地掌握数据结构的应用。

本书可作为计算机及相关专业的大学本科教材,也可作为应用型专业以及成人教育、工程技术人员的培训教材。

目录

第1章 绪论 1

1.1 学习数据结构与算法的意义 1

1.2 数据结构 3

1.3 抽象数据类型 5

1.4 算法 6

1.5 算法分析 9

小结 15

自测题答案 16

编程项目 17

第2章 线性表 18

2.1 线性表的定义 18

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

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

2.4 线性表的应用 43

小结 46

自测题答案 47

编程项目 48

第3章 栈和队列 49

3.1 栈 49

3.2 栈的应用 55

3.3 队列 67

3.4 队列的应用 76

小结 79

自测题答案 79

编程项目 81

第4章 串 82

4.1 串的定义 82

4.2 串的存储实现 84

4.3 串的模式匹配 88

小结 96

自测题答案 97

编程项目 98

第5章 数组及广义表 99

5.1 数组的定义 99

5.2 数组的顺序存储 101

5.3 矩阵的压缩存储 104

5.4 广义表 115

小结 122

自测题答案 123

编程项目 125

第6章 树和二叉树 126

6.1 树的定义与基本操作 126

6.2 二叉树 129

6.3 树和森林 144

6.4 哈夫曼树与哈夫曼编码 149

小结 157

自测题答案 158

编程项目 160

第7章 图 161

7.1 图的定义 161

7.2 图的存储方式 166

7.3 图的遍历 175

7.4 图的连通性 180

7.5 最小生成树 184

7.6 最短路径 189

7.7 有向无环图的应用 195

小结 204

自测题答案 205

编程项目 209

第8章 查找 210

8.1 线性表上的查找 210

8.2 树上的查找 218

8.3 哈希表 241

小结 252

自测题答案 254

编程项目 257

第9章 排序 258

9.1 插入排序 258

9.2 交换排序 266

9.3 选择排序 271

9.4 归并排序 278

9.5 基数排序 281

9.6 各种内部排序方法比较 283

9.7 外部排序 286

小结 292

自测题答案 293

编程项目 296

附录 各章编程项目参考答案 297

参考文献 391

前言

本书订正了第2版中的笔误、描述不规范等问题,简化了使用不多的内容;每章的编程项目都有完整的C程序实现代码,并都在VC++6.0环境下编译通过,运行正确。

数据结构是计算机科学与技术专业的专业基础课,是十分重要的核心课程。它侧重于体系和思想上的训练,是程序设计的灵魂,为计算机语言课程设计提供了方法性的理论指导,所有的计算机系统软件和应用软件都要用到各种类型的数据结构。算法与数据结构之间存在着相辅相成的关系。解决一个问题既可以选择不同的数据结构,也可以选择不同的算法。数据结构的选择决定了算法执行所需要的时间与空间,影响算法的效率;反之,算法的优劣又决定了某个数据结构是否适合解决这个问题。

全书共分为9章,由浅入深、系统地讨论了各种数据结构的基本概念和相关操作,还介绍了查找和排序算法。各章的具体内容介绍如下。

第1章是绪论,介绍了学习数据结构和算法的意义、数据结构和算法的基本概念,并且指出了数据结构和算法之间的关系,给出了分析算法的方法。

第2章主要介绍了线性表的概念、抽象数据类型及其基本操作,最后列举了一些线性表的应用实例。

第3章主要介绍了受限制的线性表,即栈和队列;重点介绍了栈和队列的抽象数据类型及其实现,并列举了几个应用实例。

第4章主要介绍了串这一非数值数据结构,包括串的抽象数据类型及其基本操作与串的模式匹配算法。

第5章介绍了数组这一数据类型在计算机中的存储,重点介绍了稀疏矩阵在计算机中的压缩存储及其操作的实现,同时还介绍了广义表的概念。

第6章讨论了树形结构及其相关算法。

第7章讨论了图形结构及其相关算法。图形结构是一种复杂的数据结构,其应用也非常广泛,该章在介绍了图的遍历算法以后还采用遍历算法推导出了其他常用算法。

第8章讨论了在线性表和树上的查找算法,还介绍了期望查找复杂度为O(1)的哈希表查找算法。

第9章重点介绍了插入排序、选择排序、交换排序、归并排序和基数排序等算法及其思想和分析,在最后还介绍了外部排序算法。

本书示例较多,讲解细致,对数据结构中的重点和难点内容进行了深入的剖析,着重培养学生的动手能力,突出实用性;对经典算法、重点算法及应用算法进行了详细的讲解,以使学生更好地掌握数据结构的应用。本书采用类C语言来描述算法。类C语言是伪码和C语言组合而成的一个描述工具,采用了C语言的核心部分,并为描述方便进行了扩充。

本书可作为计算机及相关专业的大学本科教材,也可作为应用型专业以及成人教育、工程技术人员的培训教材。

本书主要由陈琳琳、李建林任主编,由孙启虎、李橙、郭龙源任副主编。何光明、赵传申、许娟、王珊珊、石雅琴、郑爱琴、许悦、陈珍、陈凤、卢振侠、曹冬梅、杨橙、陈莉萍等人员在内容编写、程序测试、文字校对等工作中也付出了辛勤劳动,在此一并表示衷心的感谢!

本书配有电子教案,并提供程序源代码,以方便读者自学,请到清华大学出版社网站下载。

限于作者水平,书中难免存在不当之处,恳请广大读者批评指正。。

编 者