数据结构与算法

综合评级:
★★★★★

定价:
¥29.50

作者:
邹永林,周蓓,唐晓阳 编著

出版社:
清华大学出版社

出版日期:
2015年6月

页数:
239

字数:
390000

ISBN:
9787302393375

书籍介绍

  数据结构与算法注重理论与实践相结合,不仅是计算机学科的核心基础课程,也是程序设计的重要理论基础。邹永林、周蓓、唐晓阳编著的这本《数据结构与算法》系统地讲述了数据结构与算法的基本理论和实际应用,全书分为两个部分,共9章,第一部分主要讨论数据结构的基础知识和表示方式,包括线性结构(线性表、栈、队列、串、数组及广义表)、树形结构、图形结构等的定义、表示和实现;第二部分讨论排序和查找两类常用算法的原理、方法及其实现技巧。

  全书强调实用,注重理论指导下的实际可操作性,注重实际问题的解决。书中所有关于基本数据结构的定义和算法描述均采用标准的C语言格式给出,所有算法代码均在TC 2.0、Visual C 6.0、 Codeblocks等开发环境中调试通过并运行正确,读者可根据各自的要求和习惯等选择使用对应的工具。

  本书可作为高等学校计算机类各专业数据结构课程的教材或参考书,特别适合应用技术型本科层次的学生使用;也可供从事计算机应用相关工作的人员参考。

目录

第1章 绪论

1.1 引言

1.1.1 几个实例

1.1.2 数据结构的产生和发展

1.2 数据结构

1.2.1 基本概念和术语

1.2.2 数据结构定义

1.2.3 数据类型和抽象数据类型

1.3 算法定义、描述和分析

1.3.1 算法定义

1.3.2 算法设计技术

1.3.3 算法描述

1.3.4 算法分析

1.4 小结

习题

第2章 基本线性结构——线性表

2.1 概述

2.1.1 线性表的概念

2.1.2 线性表的类型定义

2.2 顺序表

2.2.1 线性表的顺序表示

2.2.2 顺序表的实现

2.3 链表

2.3.1 线性表的链式表示

2.3.2 线性链表的实现

2.3.3 循环链表的实现

2.3.4 双向链表的实现

2.3.5 静态链表的实现

2.4 算法设计举例362.5 小结

习题

第3章 限定性线性结构——栈和队列

3.1 栈

3.1.1 栈的类型定义

3.1.2 顺序栈的表示和实现

3.1.3 链栈的表示和实现

3.2 队列

3.2.1 队列的类型定义

3.2.2 顺序队列的表示和实现

3.2.3 链队的表示和实现

3.3 算法设计举例

3.4 小结

习题

第4章 特殊线性结构——串

4.1 概述

4.1.1 串的概念

4.1.2 串的逻辑定义

4.2 串的表示和实现

4.2.1 串的顺序存储表示

4.2.2 串的链式存储表示

4.3 模式匹配

4.3.1 概念

4.3.2 模式匹配的基本算法(BF算法)

4.3.3 KMP算法

4.3.4 Horspool算法和BoyerMoore算法

4.4 算法设计举例

4.5 小结

习题

第5章 扩展线性结构——数组和广义表

5.1 数组

5.1.1 数组的定义

5.1.2 数组的存储表示

5.2 矩阵的压缩存储

5.2.1 特殊矩阵

5.2.2 稀疏矩阵

5.3 广义表

5.3.1 广义表的定义

5.3.2 广义表的存储结构

5.4 算法设计举例

5.5 小结

习题

第6章 树形结构——树和二叉树

6.1 树的定义和术语

6.1.1 树的定义

6.1.2 树的基本术语

6.1.3 树的表示

6.1.4 树的遍历

6.2 二叉树

6.2.1 二叉树的定义

6.2.2 二叉树的性质

6.2.3 二叉树的存储结构

6.2.4 遍历二叉树

6.2.5 线索二叉树

6.2.6 二叉树算法设计举例

6.3 树和森林

6.3.1 树的存储结构

6.3.2 树、森林与二叉树的转换

6.3.3 森林的遍历

6.4 哈夫曼树及其应用

6.4.1 哈夫曼树

6.4.2 哈夫曼编码

6.4.3 哈夫曼编码的实现

6.5 小结

习题

第7章 图形结构——图

7.1 图的基本概念

7.1.1 图的定义

7.1.2 基本术语

7.2 图的表示和实现

7.2.1 邻接矩阵

7.2.2 邻接表

7.2.3 十字链表

7.2.4 邻接多重表

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章 常用算法I——查找

8.1 基本概念

8.1.1 查找的定义

8.1.2 基本术语

8.2 线性表的查找

8.2.1 顺序查找

8.2.2 二分查找

8.2.3 分块查找

8.3 树表查找

8.3.1 二叉排序树

8.3.2 平衡二叉树

8.3.3 B树

8.4 散列查找

8.4.1 散列表

8.4.2 散列函数的构造方法

8.4.3 处理冲突的方法

8.4.4 散列表的查找及分析

8.5 自组织线性表

8.6 小结

习题

第9章 常用算法II——排序

9.1 概述

9.2 内部排序

9.2.1 直接插入排序和希尔排序

9.2.2 冒泡排序和快速排序

9.2.3 简单选择排序和堆排序

9.2.4 归并排序

9.2.5 基数排序

9.2.6 其他内部排序方法

9.2.7 内部排序效益评估

9.3 外部排序

9.3.1 外部排序方法

9.3.2 自然归并

9.3.3 多路平衡归并

9.3.4 置换选择排序

9.3.5 最佳归并树

9.4 小结

习题

参考文献

前言

数据结构与算法是一门实践性很强,同时又十分抽象的计算机学科基础课程,本课程所讨论的各种基本数据结构、基本操作和各种数据结构的典型应用算法均需要通过相关的习题和实验环节的训练才能系统理解、掌握和提高。为此,专门针对课程理论教材编写了配套的习题解析和实验指导。

为了贯彻CDIO模式的全新教学理念,本书共分为两个部分:第一部分为习题解析,通过对课程中的各种基本概念、基本原理、基本操作和基本算法设计技术问题进行系统归纳、汇总、分析和综合,参考了大量的习题资料,整理成册,按照对应章节的顺序进行编排,采用选择题、填空题、判断题、算法分析题和综合题等题型,将本课程的各个知识点、重点、难点问题包含其中,并提供全部问题的参考答案和部分问题的分析与设计的相关说明,以期通过习题训练,帮助学生全面系统地掌握本课程的全部知识。同时,提供了4套模拟试卷及参考答案和评分标准,以便学生进行自我检查。并另外提供6套冲刺试卷,供学生进行期末强化训练,巩固课程学习效果。第二部分为实验指导,通过对多年本课程实验教学的经验和成果进行归纳、整理和完善,将本课程所涵盖的各种数据结构、存储表示方法、基本操作函数,以及典型应用算法问题等作为各章的实验内容,以阅读算法、完善算法和算法设计等形式进行上机操作训练,以期通过实验帮助学生理论联系实际,将课程中的抽象概念和实际存储状态相关联,真正理解和掌握本课程的知识和技术。

本书所有关于基本数据结构的定义和算法描述均采用标准的C语言格式给出,所有实验的算法代码均在TurboC、VisualC 6.0、Codeblocks等开发环境中调试通过并运行正确,读者可根据各自的要求和习惯等选择使用对应的工具。

本书可作为高等学校计算机类各专业学生的辅助实验教材或参考书,特别适合应用技术型本科层次的计算机类各专业使用,也可供从事计算机应用相关工作的人参考。

参加编写的有邹永林(1.2~1.5节,2.1节,2.2节中实验8和实验9)、周蓓(1.1节,2.2节中实验6和实验7)、唐晓阳(2.2节中实验1~实验5),周思林、朱奭、沈健、洪蕾等参与讨论和算法的设计与调试。邹永林完成本书的统稿工作。

由于作者水平有限,缺点和欠妥之处在所难免,恳请读者指正。

课课家教育

未登录