书籍详情
数据结构与算法
作者:廖荣贵[等]编著
出版社:清华大学出版社
出版时间:2004-11-01
ISBN:9787302097310
定价:¥34.00
购买这本书可以去
内容简介
内容简介数据结构与算法息息相关,本书以浅显易懂的文字与各种运用方式来说明各个主题,并对问题的解决方法与流程做详尽的图形剖析,辅以算法与程序代码的实例,从而增进读者对问题与结构的理解。全书共分13章,各章的主题分别为数据结构概论、数组、算法、数组结构的算法应用、查找算法、排序算法、堆栈、队列、链表、递归、树、图、散列。本书非常适合刚学习数据结构课程的学生研读,从书中的内容与顺序的编排来看本书也非常适合大专院校作为教材。在信息科学的领域中,数据结构是一门基础学科,有关人工智能、图像处理、语音识别、并行处理等相关应用的研究,都需要这门学科的辅助;算法是解决问题的方法,要解决问题,只使用数据结构这个工具还稍嫌不足,还需要学习不同的算法,进而在未来的学习道路上,才能不断思考、不断地进步。数据结构与算法息息相关。本书以浅显易懂的文字与各种运用方式来说明各个主题,并对问题的解决方法与流程作详尽的图形剖析,辅以算法与程序代码的实例来,从而增进读者对问题与结构的理解。全书共分13章,各章的主要内容分述如下:第1章"数据结构概论",介绍数据与结构、数据结构与算法等概念。第2章"数组",介绍数组的概念、数组类别和计量、数组的遍历和矩阵运算等。第3章"算法",介绍算法的概念、算法的效率分析及渐进式表示等。第4章"数组结构的算法应用",介绍数组在多项式的运算、捉大头抽签游戏、魔术方块算法中的应用,对奖算法与数据结构等。第5章"查找算法",介绍查找算法概述、线性查找法、二分查找法、插补查找法等。第6章"排序算法",介绍排序算法概述、冒泡排序法、交换排序法、选择排序法、插入排序法、谢尔排序法、基数排序法、快速排序法、归并排序法等。第7章"堆栈",介绍堆栈概述、堆栈的数据结构和操作、表达式的应用、后缀表达式求值和转换机器码。第8章"队列",介绍队列概述、队列的数据结构和操作、循环队列、双向队列和特殊队列。第9章"链表",介绍链表概述、以数组表示单链表和双向链表、以指针和结构表示链表、链表在其他结构中的应用等。第10章"递归",介绍递归关系以及递归算法在几种数学问题、汉诺塔问题、迷宫问题中的应用等。第11章"树",介绍树型结构和特性、二叉树的概念、二叉树的数据结构、二叉树的遍历、二叉运算树、堆、二叉查找树等。第12章"图",介绍图型结构的概念、图的数据结构、图的遍历、生成树和最小成本生成树、最短路径、拓扑排序等。第13章"散列",介绍散列概述、散列应用与散列函数、溢出处理、散列查找法等。本书的章节安排由浅入深,目的是培养读者对数据结构与算法的高度兴趣,从最基本的数组结构的使用及其在各种问题上的应用开始谈起:再来介绍算法的分析方法及简单的练习;再进到最常用的搜索算法与排序算法,此为第一阶段,主要使读者与程序设计课程建立联系,读者只要会基本的程序基础,就可利用程序语言编写各种实用的程序。第二阶段介绍利用数组结构扩展到堆栈结构、队列结构、链表结构等,增强读者对线性问题的解决能力。第三阶段介绍递归关系、树型结构和图型结构等较深问题的处理方法,增强读者对空间类问题的解决能力。本书具有如下特色:●每个章节的主题、结构与算法都有详细的图解说明;●每个算法都有实际对应的范例程序代码;●每个程序都有实际运行结果;●公式或运算式有推导过程,详细说明;●书中的程序代码以C语言为主,可以在各种版本的C语言开发环境中编译执行,如TurboC、VisualC++、BorlandC++Builder等;●学习评估及范例、练习等除了作者自己编的题材外,另外参考了多种数据结构与算法的典型考题:●书中结构层次分明,适合学校教师采用为教材;●本书注重训练思考的方法,解决问题的步骤,适合训练程序设计人员的程序设计能力。期望阅读本书的读者,除子能理解数据结构与算法领域的知识与技能之外,更能从本书的解题思路中得到灵感,可举一反三,将此学科的知识与技能应用在其他信息科技领域中。
作者简介
暂缺《数据结构与算法》作者简介
目录
第1章 数据结构概论
1.1 数据与结构
1.1.1 数据的演进
1.1.2 数据与结构
1.2 数据结构及算法
1.2.1 数据结构
1.2.2 算法
[重点整理]
[学习自测]
第2章 数组
2.1 什么是数组
2.1.1 数组概论
2.1.2 数组结构
2.2 数组类型和计量
2.2.1 一维数组
2.2.2 维数组
2.2.3 三维数组
2.2.4 对角线数组
2.2.5 上下三角形数组
2.2.6 三对角线数组
2.2.7 方形带状数组
2.3 数组的遍历
2.3.1 一维数组遍历
2.3.2 维数组的遍历
2.4 矩阵运算
2.4.1 概述
2.4.2 矩阵的加减法
2.4.3 矩阵乘法
2.4.4 矩阵的转置
[重点整理]
[学习自测]
第3章 算法
3.1 算法概述
3.1.1 概述
3.1.2 算法的描述方法
3.2 算法的效率分析
3.2.1 概述
3.2.2 统计分析执行次数
3.3 渐进式表示法
3.3.1 时间复杂度等级分类
3.3.2 表示法
3.3.3 表示法
3.4.4 表示法
[重点整理]
[学习自测]
第4章 数组结构的算法应用
4.1 多项式的运算
4.1.1 基本数组表示法
4.1.2 推演关系式
4.1.3 压缩数组表示法
4.1.4 两个变量的多项式
4.1.5 多项式相加
4.2 捉大头抽签游戏
4.2.1 概述
4.2.2 对应原理和结构设计
4.2.3 算法和程序设计
4.3 魔术方块
4.3.1 概述和方法
4.3.2 算法和程序
4.4 对奖算法与数据结构
4.4.1 概述和结构设计
4.4.2 第2个算法
4.4.3 第3个算法
4.4.4 第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.4.1 方法
5.4.2 插补查找法算法
[重点整理]
[学习自测]
第6章 排序算法
6.1 排序算法概述
6.1.1 定义和分类
6.1.2 排序算法比较
6.2 冒泡排序法
6.2.1 想法和结构
6.2.2 算法和程序设计
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 基数排序法
6.7.1 想法和结构
6.7.2 算法
6.8 快速排序法
6.8.1 想法和结构
6.8.2 算法
6.9 归并排序法
6.9.1 想法和结构
6.9.2 算法
[重点整理]
[学习自测]
第7章 堆栈
7.1 堆栈概述
7.1.1 堆栈的意义
7.1.2 堆栈的应用
7.2 堆栈的数据结构和操作
7.2.1 数据结构
7.2.2 操作堆栈
7.3 表达式的应用
7.3.1 算术表达式和中序表示法
7.3.2 后缀表示法
7.3.3 前缀表示法
7.4 后缀表示法求值或转换机器码
7.4.1 后缀表示法求值
7.4.2 后缀表示法转换机器码
[重点整理]
[学习自测]
第8章 队列
8.1 队列概述
8.1.1 队列的定义
8.1.2 队列的应用
8.2 队列的数据结构和操作
8.2.1 数据结构
8.2.2 操作队列
8.3 循环队列
8.3.1 循环队列结构
8.3.2 循环队列算法
8.4 双向队列和特殊队列
8.4.1 特殊队列
8.4.2 双向队列
[重点整理]
[学习自测]
第9章 链表
9.1 链表概述
9.1.1 列表的定义
9.1.2 列表的应用
9.1.3 链表
9.1.4 链表的应用
9.2 单一链表以数组表示
9.2.1 结构
9.2.2 寻找节点
9.2.3 新增节点
9.2.4 删除节点
9.2.5 反转
9.3 以数组表示双向链表
9.3.1 双向链表结构
9.3.2 双向链表寻找节点
9.3.3 双向链表新增节点
9.3.4 双向链表删除节点
9.4 用指针和结构表示链表
9.4.1 概述
9.4.2 指针与结构
9.5 链表应用在其他结构
9.5.1 链接堆栈
9.5.2 链接队列
[重点整理]
[学习自测]
第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 迷宫问题
[重点整理]
[学习自测]
第11章 树
11.1 树型结构和特性
11.1.1 结构
11.1.2 特性和计算公式
11.2 叉树
11.2.1 二叉树的定义和结构
11.2.2 满二叉树
11.2.3 完全二叉树
11.3 二叉树的数据结构
11.3.1 二叉树的编号系统
11.3.2 用数组表示二叉树
11.3.3 以结构数组表示二叉树
11.3.4 以链表表示二叉树
11.4 二叉树的遍历
11.4.1 前序遍历
11.4.2 中序遍历
11.4.3 后序遍历
11.4.4 按层遍历
11.4.5 利用中序、前序法或中序、后序法求二叉树
11.5 叉运算树
11.5.1 结构
11.5.2 建立二叉运算树
11.6 堆
11.6.1 堆的结构
11.6.2 堆的操作
11.6.3 堆树的应用——优先队列
11.6.4 堆排序法
11.7 叉查找树
11.7.1 定义与结构
11.7.2 叉查找树的特性
11.7.3 叉查找树的查找
11.7.4 二叉查找树与二叉树、堆、二分查找法的比较
11.7.5 二叉查找树应用于排序
11.7.6 建立二叉查找树与新增数据
11.7.7 删除二叉查找树的节点
[重点整理]
[学习自测]
第12章 图
12.1 图型结构
12.1.1 基本结构
12.1.2 延伸结构和特性
12.1.3 带权图
12.2 图的数据结构
12.2.1 邻接矩阵表示法
12.2.2 邻接表表示法
12.3 图的遍历
12.3.1 深度优先搜索遍历
12.3.2 广度优先搜索
12.3.3 DFS与BFS的比较与应用
12.4 生成树和最小成本生成树
12.4.1 生成树结构
12.4.2 最小成本生成树结构
12.4.3 Kruskal算法
12.4.4 Prim算法
12.5 最短路径
12.5.1 出发点最短路径问题
12.5.2 每对顶点最短路径问题
12.6 拓扑排序
12.6.1 定义与特性
12.6.2 算法
[重点整理]
[学习自测]
第13章 散列
13.1 散列概述
13.1.1 数学应用
13.1.2 代数转换
13.1.3 散列
13.2 散列应用与散列函数
13.2.1 散列应用
13.2.2 除留余数法
13.2.3 平方取中法
13.2.4 折叠法
13.2.5 抽取法
13.2.6 乘法
13.2.7 基数法
13.2.8 数字分析法
13.3 溢出处理
13.3.1 线性探测法
13.3.2 平方探测法
13.3.3 再散列法
13.3.4 链表法
13.4 散列查找法
[重点整理]
[学习自测]
1.1 数据与结构
1.1.1 数据的演进
1.1.2 数据与结构
1.2 数据结构及算法
1.2.1 数据结构
1.2.2 算法
[重点整理]
[学习自测]
第2章 数组
2.1 什么是数组
2.1.1 数组概论
2.1.2 数组结构
2.2 数组类型和计量
2.2.1 一维数组
2.2.2 维数组
2.2.3 三维数组
2.2.4 对角线数组
2.2.5 上下三角形数组
2.2.6 三对角线数组
2.2.7 方形带状数组
2.3 数组的遍历
2.3.1 一维数组遍历
2.3.2 维数组的遍历
2.4 矩阵运算
2.4.1 概述
2.4.2 矩阵的加减法
2.4.3 矩阵乘法
2.4.4 矩阵的转置
[重点整理]
[学习自测]
第3章 算法
3.1 算法概述
3.1.1 概述
3.1.2 算法的描述方法
3.2 算法的效率分析
3.2.1 概述
3.2.2 统计分析执行次数
3.3 渐进式表示法
3.3.1 时间复杂度等级分类
3.3.2 表示法
3.3.3 表示法
3.4.4 表示法
[重点整理]
[学习自测]
第4章 数组结构的算法应用
4.1 多项式的运算
4.1.1 基本数组表示法
4.1.2 推演关系式
4.1.3 压缩数组表示法
4.1.4 两个变量的多项式
4.1.5 多项式相加
4.2 捉大头抽签游戏
4.2.1 概述
4.2.2 对应原理和结构设计
4.2.3 算法和程序设计
4.3 魔术方块
4.3.1 概述和方法
4.3.2 算法和程序
4.4 对奖算法与数据结构
4.4.1 概述和结构设计
4.4.2 第2个算法
4.4.3 第3个算法
4.4.4 第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.4.1 方法
5.4.2 插补查找法算法
[重点整理]
[学习自测]
第6章 排序算法
6.1 排序算法概述
6.1.1 定义和分类
6.1.2 排序算法比较
6.2 冒泡排序法
6.2.1 想法和结构
6.2.2 算法和程序设计
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 基数排序法
6.7.1 想法和结构
6.7.2 算法
6.8 快速排序法
6.8.1 想法和结构
6.8.2 算法
6.9 归并排序法
6.9.1 想法和结构
6.9.2 算法
[重点整理]
[学习自测]
第7章 堆栈
7.1 堆栈概述
7.1.1 堆栈的意义
7.1.2 堆栈的应用
7.2 堆栈的数据结构和操作
7.2.1 数据结构
7.2.2 操作堆栈
7.3 表达式的应用
7.3.1 算术表达式和中序表示法
7.3.2 后缀表示法
7.3.3 前缀表示法
7.4 后缀表示法求值或转换机器码
7.4.1 后缀表示法求值
7.4.2 后缀表示法转换机器码
[重点整理]
[学习自测]
第8章 队列
8.1 队列概述
8.1.1 队列的定义
8.1.2 队列的应用
8.2 队列的数据结构和操作
8.2.1 数据结构
8.2.2 操作队列
8.3 循环队列
8.3.1 循环队列结构
8.3.2 循环队列算法
8.4 双向队列和特殊队列
8.4.1 特殊队列
8.4.2 双向队列
[重点整理]
[学习自测]
第9章 链表
9.1 链表概述
9.1.1 列表的定义
9.1.2 列表的应用
9.1.3 链表
9.1.4 链表的应用
9.2 单一链表以数组表示
9.2.1 结构
9.2.2 寻找节点
9.2.3 新增节点
9.2.4 删除节点
9.2.5 反转
9.3 以数组表示双向链表
9.3.1 双向链表结构
9.3.2 双向链表寻找节点
9.3.3 双向链表新增节点
9.3.4 双向链表删除节点
9.4 用指针和结构表示链表
9.4.1 概述
9.4.2 指针与结构
9.5 链表应用在其他结构
9.5.1 链接堆栈
9.5.2 链接队列
[重点整理]
[学习自测]
第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 迷宫问题
[重点整理]
[学习自测]
第11章 树
11.1 树型结构和特性
11.1.1 结构
11.1.2 特性和计算公式
11.2 叉树
11.2.1 二叉树的定义和结构
11.2.2 满二叉树
11.2.3 完全二叉树
11.3 二叉树的数据结构
11.3.1 二叉树的编号系统
11.3.2 用数组表示二叉树
11.3.3 以结构数组表示二叉树
11.3.4 以链表表示二叉树
11.4 二叉树的遍历
11.4.1 前序遍历
11.4.2 中序遍历
11.4.3 后序遍历
11.4.4 按层遍历
11.4.5 利用中序、前序法或中序、后序法求二叉树
11.5 叉运算树
11.5.1 结构
11.5.2 建立二叉运算树
11.6 堆
11.6.1 堆的结构
11.6.2 堆的操作
11.6.3 堆树的应用——优先队列
11.6.4 堆排序法
11.7 叉查找树
11.7.1 定义与结构
11.7.2 叉查找树的特性
11.7.3 叉查找树的查找
11.7.4 二叉查找树与二叉树、堆、二分查找法的比较
11.7.5 二叉查找树应用于排序
11.7.6 建立二叉查找树与新增数据
11.7.7 删除二叉查找树的节点
[重点整理]
[学习自测]
第12章 图
12.1 图型结构
12.1.1 基本结构
12.1.2 延伸结构和特性
12.1.3 带权图
12.2 图的数据结构
12.2.1 邻接矩阵表示法
12.2.2 邻接表表示法
12.3 图的遍历
12.3.1 深度优先搜索遍历
12.3.2 广度优先搜索
12.3.3 DFS与BFS的比较与应用
12.4 生成树和最小成本生成树
12.4.1 生成树结构
12.4.2 最小成本生成树结构
12.4.3 Kruskal算法
12.4.4 Prim算法
12.5 最短路径
12.5.1 出发点最短路径问题
12.5.2 每对顶点最短路径问题
12.6 拓扑排序
12.6.1 定义与特性
12.6.2 算法
[重点整理]
[学习自测]
第13章 散列
13.1 散列概述
13.1.1 数学应用
13.1.2 代数转换
13.1.3 散列
13.2 散列应用与散列函数
13.2.1 散列应用
13.2.2 除留余数法
13.2.3 平方取中法
13.2.4 折叠法
13.2.5 抽取法
13.2.6 乘法
13.2.7 基数法
13.2.8 数字分析法
13.3 溢出处理
13.3.1 线性探测法
13.3.2 平方探测法
13.3.3 再散列法
13.3.4 链表法
13.4 散列查找法
[重点整理]
[学习自测]
猜您喜欢