书籍详情
数据结构与算法(第5版)
作者:张岩,李秀坤,刘显敏 著
出版社:高等教育出版社
出版时间:2020-02-01
ISBN:9787040527575
定价:¥43.00
购买这本书可以去
内容简介
《数据结构与算法(第5版)》以哈尔滨工业大学国家精品资源共享课程“数据结构与算法”为基础,以廖明宏、郭福顺、张岩、李秀坤编著的“十一五”国家级规划教材《数据结构与算法(第4版)》为蓝本,去粗取精,融入数据结构与算法的新研究成果编写而成。全书按抽象数据型的观点组织,用类c语言描述算法,共8章。第1章给出抽象数据型的定义、算法的基本概念及其复杂度的表示方法,简要介绍逐步求精的程序设计方法。第2-4章是对线性表、树、图等主要数据结构定义相应的抽象数据型,给出各种物理表示法和有关算法。第5-7章是关于数据处理技术的内容,介绍几种主要的查找结构和排序算法,同时还介绍了文件的组织形式。第8章介绍几种典型的算法设计方法及其分析方法。《数据结构与算法(第5版)》可作为本科计算机及相关专业“数据结构与算法”课程教材,也可作为硕士研究生“算法设计与分析”课程的教学参考书,同时对计算机科技工作者也有一定的参考价值。
作者简介
张岩,哈尔滨工业大学副教授,海量数据计算研究中心副主任,计算机科学与技术核心课程国家优秀教学团队骨干成员。研究方向为数据管理、算法理论、大数据计算、数据质量管理等。李秀坤,哈尔滨工业大学教授,国家计算机实验教学示范中心副主任,计算机科学与技术核心课程国家优秀教学团队骨干成员,国家资源共享课程“数据结构与算法”负责人。主要研究方向为计算机应用技术及计算机网络技术。刘显敏,哈尔滨工业大学副教授。研究方向为大数据计算、数据质量管理等。Algorithmica等国际期刊审稿人,Mathematical Reviews评论员。
目录
第1章 绪论
1.1 数据结构的研究对象
1.2 数据结构的发展概况
1.3 抽象数据型
1.3.1 抽象数据型的定义
1.3.2 数据类型、数据结构和抽象数据型
1.3.3 多层次抽象技术
1.3.4 抽象数据型的优点
1.4 算法及其复杂度
1.4.1 算法与程序
1.4.2 算法的复杂度及其表示
1.4.3 最坏、最好和平均情况分析
1.4.4 时间复杂度分析的基本方法
1.5 逐步求精的程序设计方法
1.5.1 如何求解问题
1.5.2 算法的逐步求精
习题1
第2章 线性表
2.1 线性表的抽象数据型
2.2 线性表的实现
2.2.1 线性表的数组实现
2.2.2 线性表的指针实现
2.2.3 静态链表
2.2.4.双向链表
2.2.5 环形链表
2.2.6 多项式的代数运算
2.3 栈
2.3.1 栈的数组实现
2.3.2 栈的指针实现
2.3.3 栈和递归调用
2.3.4 栈的应用
2.4 队列
2.4.1 队列的指针实现
2.4.2 队列的循环数组实现
2.4.3 队列的应用
2.5 串
2.5.1 串的抽象数据型
2.5.2 串的表示
2.5.3 模式匹配算法
2.6 多维数组
2.6.1 数组的抽象数据型
2.6.2 多维数组的表示
2.7 广义表
习题2
第3章 树
3.1 基本术语
3.2 二叉树
3.2.1 二叉树的定义及遍历
3.2.2 二叉树的性质
3.2.3 二叉树的抽象数据型
3.2.4 二叉树的表示
3.2.5二叉树的复制与计数
3.3 堆与优先级队列
3.4 选择树
3.5 树
3.5.1 树的抽象数据型
3.5.2 树的表示
3.6 森林和二叉树间的转换
3.7 树的应用
3.7.1 集合的树结构表示
3.7.2 判定树
3.7.3 哈夫曼树
3.7.4 表达式求值
习题3
第4章 图
4.1 基本定义
4.2 图的表示
4.2.1 邻接矩阵
4.2.2 邻接表
4.2.3 十字链表
4.2.4 邻接多重表
4.3 图的搜索
4.3.1 深度优先搜索与深度优先编号
4.3.2 广度优先搜索与广度优先编号
4.4 图与树的联系
4.4.1 深度优先生成森林和广度优先生成森林
4.4.2 无向图与开放树的联系
4.4.3 最小生成树.r
4.5 无向图的双连通性
4.5.1 无向图的双连通分量
4.5.2 求关节点
4.6 搜索产生的边
4.7 强连通性
4.8 拓扑排序
4.8.1 无环路有向图
4.8.2 拓扑排序算法
4.9 关键路径
4.10 单源最短路径
4.11 每一对顶点之间的最短路径
4.11.1 Floyd算法
4.11.2 Warshall算法
4.1 1.3 求有向图的中心点
4.1 2求有向图的基本环路
习题4
第5章 查找
5.1 线性查找
5.2 折半查找
5.3 分块查找
5.4 二叉查找树
5.5 AVL树
5.6 B.树与B+树
5.6.1 B.树及其性质
5.6.2 B.树的插入操作
5,6.3 B.树的删除操作
5.6.4 B+树
5.7 Trie树
5.7.1 Trie树的定义
5.7.2 Trie树的查找操作
5.7.3采样策略
5.7.4 Trie树的插入操作
5.7.5 Trie树的删除操作
5.8 散列法
5.8.1 内散列表
5.8.2 散列函数
5.8.3 冲突的处理
5.8.4 外散列表
习题5
第6章 内部排序
6.1 概述
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.4.3 堆排序
6.5 归并排序
6.5.1 合并两个排序序列
6.5.2 归并排序的迭代算法
6.5.3 归并排序的递归算法
6.6 基数排序
6.7 词典排序
6.8 求第k个最小元素
习题6
第7章 文件与外部排序
7.1 文件及文件操作
7.1.1 文件的有关概念
7.1.2 文件操作
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 初始归并段的生成
7.3.4 归并段的最优归并
7.4 磁带文件的归并排序
7.4.1 平衡归并排序
7.4.2 多阶段归并排序
习题7
第8章 算法设计方法
8.1 递归方程的求解
8.1.1 与递归方程解有关的两个问题
8.1.2 猜解法
8.1.3 迭代法
8.1.4 一类递归方程的展开式与通解
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.4.3 联赛胜负概率问题
8.5 回溯法
8.5.1 基本思想
8.5.2 单词匹配问题
8.5.3 回溯算法与解法空间的组织
8.5.4 8皇后问题
8.6 分支限界法
8.6.1 基本思想
8.6.2 0-1背包问题
8.6 .3旅行商问题
习题8
参考文献
1.1 数据结构的研究对象
1.2 数据结构的发展概况
1.3 抽象数据型
1.3.1 抽象数据型的定义
1.3.2 数据类型、数据结构和抽象数据型
1.3.3 多层次抽象技术
1.3.4 抽象数据型的优点
1.4 算法及其复杂度
1.4.1 算法与程序
1.4.2 算法的复杂度及其表示
1.4.3 最坏、最好和平均情况分析
1.4.4 时间复杂度分析的基本方法
1.5 逐步求精的程序设计方法
1.5.1 如何求解问题
1.5.2 算法的逐步求精
习题1
第2章 线性表
2.1 线性表的抽象数据型
2.2 线性表的实现
2.2.1 线性表的数组实现
2.2.2 线性表的指针实现
2.2.3 静态链表
2.2.4.双向链表
2.2.5 环形链表
2.2.6 多项式的代数运算
2.3 栈
2.3.1 栈的数组实现
2.3.2 栈的指针实现
2.3.3 栈和递归调用
2.3.4 栈的应用
2.4 队列
2.4.1 队列的指针实现
2.4.2 队列的循环数组实现
2.4.3 队列的应用
2.5 串
2.5.1 串的抽象数据型
2.5.2 串的表示
2.5.3 模式匹配算法
2.6 多维数组
2.6.1 数组的抽象数据型
2.6.2 多维数组的表示
2.7 广义表
习题2
第3章 树
3.1 基本术语
3.2 二叉树
3.2.1 二叉树的定义及遍历
3.2.2 二叉树的性质
3.2.3 二叉树的抽象数据型
3.2.4 二叉树的表示
3.2.5二叉树的复制与计数
3.3 堆与优先级队列
3.4 选择树
3.5 树
3.5.1 树的抽象数据型
3.5.2 树的表示
3.6 森林和二叉树间的转换
3.7 树的应用
3.7.1 集合的树结构表示
3.7.2 判定树
3.7.3 哈夫曼树
3.7.4 表达式求值
习题3
第4章 图
4.1 基本定义
4.2 图的表示
4.2.1 邻接矩阵
4.2.2 邻接表
4.2.3 十字链表
4.2.4 邻接多重表
4.3 图的搜索
4.3.1 深度优先搜索与深度优先编号
4.3.2 广度优先搜索与广度优先编号
4.4 图与树的联系
4.4.1 深度优先生成森林和广度优先生成森林
4.4.2 无向图与开放树的联系
4.4.3 最小生成树.r
4.5 无向图的双连通性
4.5.1 无向图的双连通分量
4.5.2 求关节点
4.6 搜索产生的边
4.7 强连通性
4.8 拓扑排序
4.8.1 无环路有向图
4.8.2 拓扑排序算法
4.9 关键路径
4.10 单源最短路径
4.11 每一对顶点之间的最短路径
4.11.1 Floyd算法
4.11.2 Warshall算法
4.1 1.3 求有向图的中心点
4.1 2求有向图的基本环路
习题4
第5章 查找
5.1 线性查找
5.2 折半查找
5.3 分块查找
5.4 二叉查找树
5.5 AVL树
5.6 B.树与B+树
5.6.1 B.树及其性质
5.6.2 B.树的插入操作
5,6.3 B.树的删除操作
5.6.4 B+树
5.7 Trie树
5.7.1 Trie树的定义
5.7.2 Trie树的查找操作
5.7.3采样策略
5.7.4 Trie树的插入操作
5.7.5 Trie树的删除操作
5.8 散列法
5.8.1 内散列表
5.8.2 散列函数
5.8.3 冲突的处理
5.8.4 外散列表
习题5
第6章 内部排序
6.1 概述
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.4.3 堆排序
6.5 归并排序
6.5.1 合并两个排序序列
6.5.2 归并排序的迭代算法
6.5.3 归并排序的递归算法
6.6 基数排序
6.7 词典排序
6.8 求第k个最小元素
习题6
第7章 文件与外部排序
7.1 文件及文件操作
7.1.1 文件的有关概念
7.1.2 文件操作
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 初始归并段的生成
7.3.4 归并段的最优归并
7.4 磁带文件的归并排序
7.4.1 平衡归并排序
7.4.2 多阶段归并排序
习题7
第8章 算法设计方法
8.1 递归方程的求解
8.1.1 与递归方程解有关的两个问题
8.1.2 猜解法
8.1.3 迭代法
8.1.4 一类递归方程的展开式与通解
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.4.3 联赛胜负概率问题
8.5 回溯法
8.5.1 基本思想
8.5.2 单词匹配问题
8.5.3 回溯算法与解法空间的组织
8.5.4 8皇后问题
8.6 分支限界法
8.6.1 基本思想
8.6.2 0-1背包问题
8.6 .3旅行商问题
习题8
参考文献
猜您喜欢