下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 编程语言 >C/C++ > 数据结构与算法:C语言描述(第2版)

数据结构与算法:C语言描述(第2版)

综合评级:★★★★★

定价:45.00

作者:沈华等 编

出版社:机械工业出版社

出版日期:2015年10月

页数:343

字数:460000

ISBN:9787111511427

书籍介绍
本书用深入浅出的语言从普通高校学生的学习需求出发,介绍了数据结构的相关知识。本书分为六个部分,从基础知识、线性数据结构、非线性数据结构、数据结构中的重要运算、多维数据结构及大数据数据结构等内容。本书适合作为高等院校计算机及相关专业数据结构课程的教材,也可作为技术人员的自学教材。
相关课程
目录

前言

教学建议

**部分概论部分

第1章数据结构

1.1什么是数据

1.2什么是数据结构

1.2.1数据的逻辑结构

1.2.2数据的存储结构

1.2.3数据的运算

1.3什么是数据类型

1.4什么是抽象数据类型

1.5知识点小结

习题

第2章算法

2.1什么是算法

2.2算法的描述

2.3算法的性能分析

2.3.1时间复杂度

2.3.2渐近符号

2.3.3空间复杂度

2.3.4复杂度分析举例

2.4算法的性能度量

2.4.1性能度量的方法

2.4.2生成测试数据

2.5知识点小结

习题

第二部分线性部分

第3章线性表

3.1线性表抽象数据类型

3.1.1线性表的逻辑结构

3.1.2线性表的基本运算

3.1.3线性表的ADT描述

3.2线性表的应用——两个一元多项式

相加

3.2.1问题描述与分析

3.2.2问题求解

3.3线性表的实现

3.3.1顺序表

3.3.2单链表

3.3.3静态单链表

3.3.4 -元多项式相加问题的求解

实现

3.4线性表的其他实现及应用场景

分析 一

3.4.1双(向)链表

3.4.2循环单(向)链表

3.4.3循环双(向)链表

3.5知识点小结

习题

第4章栈

4.1栈抽象数据类型

4.1.1栈的逻辑结构

4.1.2栈的基本运算

4.1.3栈的ADT描述

4.2栈的应用——表达式求解

4.2.1问题描述与分析

4.2.2问题求解

4.3栈的实现

-4.3.1顺序栈

4.3.2链栈

4.3.3在表达式求解问题上的性能

分析与比较

4.4顺序栈的一种有趣实现——两个

方向生长的栈 ’

4.5栈与递归的天然联系 一

4.6知识点小结 一

习题

第5章队列

5.1队列抽象数据类型 一

5.1.1队列的逻辑结构 一

5.1.2队列的基本运算 一

5.1.3队列的ADT描述

5.2 队列的应用-模拟舞伴配对

问题

5.2.1问题描述与分析

5.2.2问题求解

5.3队列的实现

5.3.1顺序队列

5.3.2循环队列

5.3.3链队列

5.4双端队列及队列应用场景举例

5.4.1双端队列

5.4.2队列应用场景举例

5.5知识点小结

习题

第6章串

6.1串抽象数据类型

6.1.1 串的逻辑结构

6.1.2串的基本运算

6.1.3 串的ADT描述

6.2串的实现

6.2.1 串的顺序存储表示

6.2.2串的堆分配存储表示

6.2.3串的块链存储表示

6.3串的模式匹配

6.3.1朴素的模式匹配算法

6.3.2 KMP算法

6.4知识点小结

习题

第7章数组及广义表

7.1数组的类型定义

7.1.1数组的定义

7.1.2数组的性质

7.1.3数组的基本运算

7.2多维数组的线性存储方法

7.3特殊矩阵的压缩存储

7.3.1特殊形状矩阵的压缩存储

7.3.2随机稀疏矩阵的压缩存储及其

运算

7.4广义表

7.4.1广义表的基本概念

7.4.2广义表的性质

7.4.3广义表的基本运算

7.4.4广义表的存储结构

7.5知识点小结

习题

第三部分非线性部分

第8章树与森林

8.1认识树

8.1.1 (根)树的定义

8.1.2基本术语

8.1.3树的基本运算

8.2树的实现

8.2.1需要解决的关键问题

8.2.2关键问题的求解思路

8.2.3树的存储结构

8.2.4存储方案的比较分析

8.3树的创建

8.3.1问题描述与分析

8.3.2问题求解

8.4树的遍历

8.4.1问题描述与分析

8.4.2问题求解

8.5树的应用

8.5.1并查集

8.5.2等价类

8.5.3决策树

8.6森林

8.7知识点小结

习题

第9章二叉树

9.1认识二叉树

9.1.1二叉树的定义

9.1.2二叉树的基本运算

9.1.3二叉树的性质

9.2二叉树的实现

9.2.1需要解决的关键问题

9.2.2关键问题的求解思路

9.2.3二叉树的存储结构

9.2.4方案的比较分析

9.3二叉树的创建

9.3.1问题描述与分析

9.3.2问题求解

9.4二叉树的遍历

9.4.1问题描述与分析

9.4.2问题求解

9.4.3二叉树遍历应用举例

9.5线索二叉树

9.5.1线索二叉树的应用需求

9.5.2二叉树的线索化

9.5.3线索二叉树上的运算

9.6二叉树的应用

9.6.1哈夫曼树及其应用

9.6.2二叉排序树及其应用

9.6.3平衡二叉树

9.7树、森林与二叉树的关系

9.7.1树、森林与二叉树的相互

转换

9.7.2树、森林与二叉树在遍历运算

上的关系

9.8知识点小结

习题

第10章图

10.1认识图

10.1.1图的定义

10.1.2基本术语

10.1.3图的基本运算

10.2图的实现

10.2.1需要解决的关键问题

10.2.2关键问题的求解思路

10.2.3图的存储结构

10.2.4存储方案的比较分析

10.3图的创建

10.3.1问题描述与分析

10.3.2问题求解

10.4图的遍历

10.4.1问题描述与分析

10.4.2深度优先搜索遍历

10.4.3广度优先搜索遍历

10.4.4图遍历的应用

10.5生成树

10.5.1连通图的生成树

10.5.2连通网的*小生成树

10.6*短路径

10.6.1单源*短路径

10.6.2每对顶点间的*短路径

10.6.3*短路径应用举例

10.7有向无环图及其应用

10.7.1 AOV网与拓扑排序

10.7.2 AOE网与关键路径

10.8知识点小结

习题

第四部分重要运算部分

第1 1章查找

11.1查找的基本概念

11.2静态查找

11.2.1顺序查找

11.2.2二分查找

11.2.3分块查找

11.3动态查找

11.4散列技术

11.4.1散列表的概念

11.4.2散列函数的构造方法

11.4.3处理冲突的方法

11.4.4散列表的查找

11.4.5散列表的应用

11.5知识点小结

习题

第12章排序

12.1排序的基本概念

12.2插入排序

12.2.1直接插入排序

12.2.2希尔排序

12.3交换排序

12.3.1冒泡排序

12.3.2快速排序

12.4选择排序

12.4.1直接选择排序

12.4.2树形选择排序

12.4.3堆排序

12.5归并排序

12.5.1 (内部)归并排序

12.5.2外部归并排序

12.6分配排序

12.6.1箱排序

12.6.2基数排序

12.7各种(内部)排序方法的比较

12.8知识点小结

习题

参考文献

前言
计算机在社会各领域的应用已经无处不在。计算机需要加工处理的数据越来越复杂、规模也越来越大,对数据组织和处理的效率提出了更高的要求。在计算机科学中,数据结构是一种在计算机中组织、存储数据,以便高效利用这些数据的有效方式,它是许多高效算法的基本要素,几乎所有的程序或软件系统都要用到数据结构。“数据结构”作为一门独立的课程在国外是从1968年才开始设立的。1968年,美国唐·欧·克努特教授开创了数据结构的*初体系,他所著的《计算机程序设计技巧:第1卷基本算法》是**本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。数据结构课程是计算机科学的基础核心课程,它对于外围课程的知识与经验具有迁移性、衍生性,并对学生自学知识和获取实践经验具有基础性、发展性。该课程教学的突出难点是知识的抽象性和动态性,学习过程也是复杂程序设计的训练过程,理论性和实践性均较强,被认为是比较难学的课程。

  对学生来说,学习这门课程的主要难度体现在,不知道如何根据实际问题选择合适的数据结构(包括两个层次,如何选择合适的数据逻辑结构构建问题模型和如何选择合适的数据存储结构实现求解问题模型的算法)和如何应用选择的数据结构进行问题的求解(当然,这个问题还需要“算法设计与分析”这门课程来进一步解决)。

  基于上述考虑,本书充分运用实例法深入浅出、形象地讲解各种数据结构,针对一个讲解实例给出了不同的求解方案,让读者能够了解如何选择合适数据结构求解问题,并切身体会采用同一种数据结构的不同存储结构实现同一个算法在执行效率和编程难度上的差异,从而激发学生的学习兴趣和热情。而且,以问题驱动的方式引导学生进行逐步深入思考,有利于帮助学生建立计算思维,使得他们不仅知其然,而且知其所以然。

  本书分为四个部分共12章。**部分包括第1章和第2章,主要介绍数据结构的概念、算法的概念、数据结构和算法之间的密切关联以及简单的算法分析。第二部分包括第3—7章,这一部分以“线性表”为主线分别详细讨论了六种常见的线性结构。第三部分介绍了非线性结构中树(第8章)、二叉树(第9章)和图(第10章)的基本概念、存储结构、一些基本操作的实现以及它们的经典应用。第四部分介绍了查找(第11章)和排序(第12章)的各种常用算法,同时展现了各种数据结构的完美应用。

  本书在内容组织上力求丰富充实、科学合理,符合学生的认知规律,力求将每种数据结构分析透彻。在语言描述上力求深入浅出、简单明了。为了帮助学生理解和掌握各种数据结构,书中列举了大量的思考题、例题和习题。本书主要采用面向过程的C语言作为数据结构和算法的描述手段,在保持C语言优点的同时尽量使算法描述简单清晰。

  与本书配套的资料有书中程序的源代码、习题参考答案以及电子课件等,教师可登录华章网站下载。

  本书第1~10章主要由湖北工业大学沈华博士编写,第11~12章主要由湖南工业大学文志诚博士编写,湖北工业大学杨晓艳博士对书中代码进行了校验,全书由湖北工业大学张明武教授修改定稿。

  在本书的编写中,负责本书编辑出版工作的机械工业出版社华章公司策划编辑、教材部副主任朱劫老师和佘洁编辑付出了大量辛勤的劳动。武汉大学何炎祥教授在百‘庀之中认真审阅了全书,提出了许多宝贵和中肯的意见。在此,谨向每一位关心和支持本书编写工作的各位朋友、老师表示衷心的谢意!

  由于作者的知识和写作水平有限,书中难免有错误和不足之处,恳请各位专家、读者批评指正。作者E-mail:nancy78733@126.com。

  沈华2015年4月于武汉南湖

热门图书
推荐新闻
技术文库
论坛推荐