书籍详情
算法与数据结构(第三版)
作者:陈媛,卢玲,何波,刘恒洋
出版社:清华大学出版社
出版时间:2020-01-01
ISBN:9787302539667
定价:¥59.00
购买这本书可以去
内容简介
《算法与数据结构(第三版)》系统介绍了算法与数据结构方面的基本知识,重点阐述了基本数据结构及算法在程序开发中的应用方法。通过深入地学习和分析,能够帮助读者极大地提高软件开发和设计能力。
作者简介
暂缺《算法与数据结构(第三版)》作者简介
目录
第1章 绪论
1.1 数据结构的基本概念与学习方法
1.1.1 数据结构的研究对象
1.1.2 数据结构的基本概念和基本术语
1.2 算法与数据结构
1.2.1 算法的概念
1.2.2 描述算法的方法
1.2.3 算法分析
1.3 学习算法与数据结构的意义和方法
1.4 C语言的数据类型及其算法描述
1.4.1 C语言的基本数据类型概述
1.4.2 C语言的数组和结构体数据类型
1.4.3 C语言的指针类型概述
1.4.4 C语言的函数
1.4.5 用C语言验证算法的方法
1.5 从C语言到C++语言
1.5.1 C++语言的类和抽象数据类型
1.5.2 C++语言验证算法的方法
1.5.3 C++语言与C语言程序的区别
1.5.4 C++语言的重要特性
习题1
上机练习1
第2章 线性表
2.1 线性表的逻辑结构
2.1.1 线性表的定义
2.1.2 线性表的运算
2.2 线性表的顺序存储结构——顺序表
2.2.1 顺序表
2.2.2 顺序存储结构的优缺点
2.2.3 顺序表上的基本运算
2.3 线性表的链式存储结构——链表
2.3.1 单链表
2.3.2 循环链表和双向链表
2.4 线性表的应用示例
2.5 C++中的线性表
2.5.1 C++中线性表抽象数据类型
2.5.2 C++中线性表的顺序存储
2.5.3 C++中线性表的链式存储
习题2
上机练习2
第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.3.1 队列的基本概念
3.3.2 队列的顺序存储结构
3.3.3 队列的链式存储结构
3.4 队列的应用实例
3.4.1 舞伴问题
3.4.2 打印队列的模拟管理
3.5 递归
3.5.1 递归的定义及递归模型
3.5.2 递归的实现
3.5.3 递归设计
3.5.4 递归到非递归的转换
3.6 C++中的栈和队列
3.6.1 C++中的栈
3.6.2 C++中的队列
习题3
上机练习3
第4章 数组和字符串
4.1 数组
4.1.1 数组的定义与操作
4.1.2 数组的顺序存储结构
4.1.3 矩阵的压缩存储方法
4.2 字符串
4.2.1 字符串的定义与操作
4.2.2 字符串的存储结构
4.2.3 字符串基本操作的实现
4.2.4 字符串的应用举例
4.3 C++中的数组和字符串
4.3.1 C++中的数组
4.3.2 C++中的字符串
习题4
上机练习4
第5章 树
5.1 树的概念与操作
5.1.1 树的概念
5.1.2 树的基本操作
5.2 二叉树
5.2.1 二叉树的概念
5.2.2 二叉树的性质
5.2.3 二叉树的存储结构及其实现
5.3 二叉树的遍历
5.3.1 递归的遍历算法
5.3.2 二叉树遍历操作应用举例
5.4 线索二叉树
5.4.1 线索二叉树的定义
5.4.2 线索二叉树的常用运算
5.5 一般树的表示和遍历
5.5.1 一般树的表示
5.5.2 二叉树与树、森林之间的转换
5.5.3 一般树的遍历
5.6 哈夫曼树及其应用
5.6.1 哈夫曼树
5.6.2 哈夫曼树的应用
5.7 C++中的树
5.7.1 C++中的二叉树结点类
5.7.2 C++中的二叉树类
5.7.3 C++中二叉树的非递归遍历
习题5
上机练习5
第6章 图
6.1 图的概念与操作
6.1.1 图的定义
6.1.2 图的基本术语
6.2 图的存储结构
6.2.1 邻接矩阵
6.2.2 邻接表
6.2.3 十字链表
6.2.4 边集数组
6.3 图的遍历
6.3.1 深度优先搜索
6.3.2 广度优先搜索
6.4 图的连通性
6.4.1 无向图的连通分量
6.4.2 生成树和最小代价生成树
6.5 有向无环图及应用
6.5.1 拓扑排序
6.5.2 关键路径
6.6 最短路径及应用
6.6.1 单源最短路径
6.6.2 每对顶点之间的最短路径
6.7 C++中的图
6.7.1 C++中的图类
6.7.2 图的邻接表的C++程序
6.7.3 图的遍历的C++程序
6.7.4 图的最小生成树的C++程序
习题6
上机练习6
第7章 查找
7.1 基本概念与术语
7.2 静态查找表
7.2.1 静态查找表结构
7.2.2 顺序查找
7.2.3 有序表的折半查找
7.2.4 有序表的插值查找和斐波那契查找
7.2.5 分块查找
7.3 动态查找表
7.3.1 二叉排序树
7.3.2 平衡二叉树
7.3.3 B树和B+树
7.4 哈希表查找
7.4.1 哈希表与哈希方法
7.4.2 常用的哈希方法
7.4.3 处理冲突的方法
7.4.4 哈希表的查找分析
7.5 C++中的查找
7.5.1 静态查找的C++程序
7.5.2 动态查找的C++程序
习题7
上机练习7
第8章 排序
8.1 基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希尔排序
8.3 交换排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 选择排序
8.4.1 简单选择排序
8.4.2 堆排序
8.5 归并排序
*8.6 基数排序
*8.7 外部排序简介
8.7.1 外存信息的存取
8.7.2 外部排序的基本方法
8.8 C++中的排序
习题8
上机练习8
第9章 常用算法设计技术
9.1 蛮力算法
9.1.1 蛮力算法思想
9.1.2 蛮力算法应用实例——最近对问题
9.2 分治算法
9.2.1 分治算法思想
9.2.2 分治算法设计
9.2.3 分治算法设计应用实例——棋盘覆盖问题
9.3 动态规划算法
9.3.1 动态规划算法思想及设计
9.3.2 动态规划算法应用实例——0/1背包问题
9.4 贪心算法
9.4.1 贪心算法技术思想
9.4.2 贪心算法设计
9.4.3 贪心算法应用实例——背包问题
9.5 回溯算法
9.5.1 回溯算法有关概念
9.5.2 回溯算法思想
9.5.3 回溯算法设计
9.5.4 回溯算法应用实例——装载问题
9.6 分支限界算法
9.6.1 分支限界算法思想
9.6.2 分支限界算法设计
9.6.3 分支限界算法应用实例——任务分配问题
习题9
上机练习9
第10章 标准模板库
10.1 STL简介
10.1.1 容器
10.1.2 迭代器
10.1.3 算法
10.2 STL应用实例
10.2.1 双向链表操作的STL实现
10.2.2 STL测试程序
习题10
上机练习10
参考文献
1.1 数据结构的基本概念与学习方法
1.1.1 数据结构的研究对象
1.1.2 数据结构的基本概念和基本术语
1.2 算法与数据结构
1.2.1 算法的概念
1.2.2 描述算法的方法
1.2.3 算法分析
1.3 学习算法与数据结构的意义和方法
1.4 C语言的数据类型及其算法描述
1.4.1 C语言的基本数据类型概述
1.4.2 C语言的数组和结构体数据类型
1.4.3 C语言的指针类型概述
1.4.4 C语言的函数
1.4.5 用C语言验证算法的方法
1.5 从C语言到C++语言
1.5.1 C++语言的类和抽象数据类型
1.5.2 C++语言验证算法的方法
1.5.3 C++语言与C语言程序的区别
1.5.4 C++语言的重要特性
习题1
上机练习1
第2章 线性表
2.1 线性表的逻辑结构
2.1.1 线性表的定义
2.1.2 线性表的运算
2.2 线性表的顺序存储结构——顺序表
2.2.1 顺序表
2.2.2 顺序存储结构的优缺点
2.2.3 顺序表上的基本运算
2.3 线性表的链式存储结构——链表
2.3.1 单链表
2.3.2 循环链表和双向链表
2.4 线性表的应用示例
2.5 C++中的线性表
2.5.1 C++中线性表抽象数据类型
2.5.2 C++中线性表的顺序存储
2.5.3 C++中线性表的链式存储
习题2
上机练习2
第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.3.1 队列的基本概念
3.3.2 队列的顺序存储结构
3.3.3 队列的链式存储结构
3.4 队列的应用实例
3.4.1 舞伴问题
3.4.2 打印队列的模拟管理
3.5 递归
3.5.1 递归的定义及递归模型
3.5.2 递归的实现
3.5.3 递归设计
3.5.4 递归到非递归的转换
3.6 C++中的栈和队列
3.6.1 C++中的栈
3.6.2 C++中的队列
习题3
上机练习3
第4章 数组和字符串
4.1 数组
4.1.1 数组的定义与操作
4.1.2 数组的顺序存储结构
4.1.3 矩阵的压缩存储方法
4.2 字符串
4.2.1 字符串的定义与操作
4.2.2 字符串的存储结构
4.2.3 字符串基本操作的实现
4.2.4 字符串的应用举例
4.3 C++中的数组和字符串
4.3.1 C++中的数组
4.3.2 C++中的字符串
习题4
上机练习4
第5章 树
5.1 树的概念与操作
5.1.1 树的概念
5.1.2 树的基本操作
5.2 二叉树
5.2.1 二叉树的概念
5.2.2 二叉树的性质
5.2.3 二叉树的存储结构及其实现
5.3 二叉树的遍历
5.3.1 递归的遍历算法
5.3.2 二叉树遍历操作应用举例
5.4 线索二叉树
5.4.1 线索二叉树的定义
5.4.2 线索二叉树的常用运算
5.5 一般树的表示和遍历
5.5.1 一般树的表示
5.5.2 二叉树与树、森林之间的转换
5.5.3 一般树的遍历
5.6 哈夫曼树及其应用
5.6.1 哈夫曼树
5.6.2 哈夫曼树的应用
5.7 C++中的树
5.7.1 C++中的二叉树结点类
5.7.2 C++中的二叉树类
5.7.3 C++中二叉树的非递归遍历
习题5
上机练习5
第6章 图
6.1 图的概念与操作
6.1.1 图的定义
6.1.2 图的基本术语
6.2 图的存储结构
6.2.1 邻接矩阵
6.2.2 邻接表
6.2.3 十字链表
6.2.4 边集数组
6.3 图的遍历
6.3.1 深度优先搜索
6.3.2 广度优先搜索
6.4 图的连通性
6.4.1 无向图的连通分量
6.4.2 生成树和最小代价生成树
6.5 有向无环图及应用
6.5.1 拓扑排序
6.5.2 关键路径
6.6 最短路径及应用
6.6.1 单源最短路径
6.6.2 每对顶点之间的最短路径
6.7 C++中的图
6.7.1 C++中的图类
6.7.2 图的邻接表的C++程序
6.7.3 图的遍历的C++程序
6.7.4 图的最小生成树的C++程序
习题6
上机练习6
第7章 查找
7.1 基本概念与术语
7.2 静态查找表
7.2.1 静态查找表结构
7.2.2 顺序查找
7.2.3 有序表的折半查找
7.2.4 有序表的插值查找和斐波那契查找
7.2.5 分块查找
7.3 动态查找表
7.3.1 二叉排序树
7.3.2 平衡二叉树
7.3.3 B树和B+树
7.4 哈希表查找
7.4.1 哈希表与哈希方法
7.4.2 常用的哈希方法
7.4.3 处理冲突的方法
7.4.4 哈希表的查找分析
7.5 C++中的查找
7.5.1 静态查找的C++程序
7.5.2 动态查找的C++程序
习题7
上机练习7
第8章 排序
8.1 基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希尔排序
8.3 交换排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 选择排序
8.4.1 简单选择排序
8.4.2 堆排序
8.5 归并排序
*8.6 基数排序
*8.7 外部排序简介
8.7.1 外存信息的存取
8.7.2 外部排序的基本方法
8.8 C++中的排序
习题8
上机练习8
第9章 常用算法设计技术
9.1 蛮力算法
9.1.1 蛮力算法思想
9.1.2 蛮力算法应用实例——最近对问题
9.2 分治算法
9.2.1 分治算法思想
9.2.2 分治算法设计
9.2.3 分治算法设计应用实例——棋盘覆盖问题
9.3 动态规划算法
9.3.1 动态规划算法思想及设计
9.3.2 动态规划算法应用实例——0/1背包问题
9.4 贪心算法
9.4.1 贪心算法技术思想
9.4.2 贪心算法设计
9.4.3 贪心算法应用实例——背包问题
9.5 回溯算法
9.5.1 回溯算法有关概念
9.5.2 回溯算法思想
9.5.3 回溯算法设计
9.5.4 回溯算法应用实例——装载问题
9.6 分支限界算法
9.6.1 分支限界算法思想
9.6.2 分支限界算法设计
9.6.3 分支限界算法应用实例——任务分配问题
习题9
上机练习9
第10章 标准模板库
10.1 STL简介
10.1.1 容器
10.1.2 迭代器
10.1.3 算法
10.2 STL应用实例
10.2.1 双向链表操作的STL实现
10.2.2 STL测试程序
习题10
上机练习10
参考文献
猜您喜欢