当前位置:主页 > 课后答案 > 数据结构习题答案
数据结构与算法(第四版)

《数据结构与算法(第四版)》课后习题答案

  • 更新:2021-04-28
  • 大小:19.5 KB
  • 类别:数据结构
  • 作者:廖明宏
  • 出版:高等教育出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书是普通高等教育“十一五”国家级规划教材,也是北京市精品课程主讲教材。本书按照IEEE/ACM CC2005和教育部教指委关于“计算机科学与技术专业规范”( CCC2005)的要求编写,力求使学生较全面地理解数据结构的概念、掌握各种数据结构与算法的实现方式,同时比较不同数据结构和算法的特点,重点强调实践教学和学生动手能力的培养。

本书的内容涉及基本数据结构、排序、索引、检索、高级数据结构等内容,借助抽象数据类型,从逻辑结构的角度系统地介绍线性表、字符串、二叉树、树和图等各种基本数据结构;从算法的角度系统地介绍各类排序、检索和索引算法;从应用的角度介绍一些更复杂的数据结构与算法分析技术。本书采用能够更自然体现抽象数据类型概念的C++语言作为算法描述语言,注意对每一种数据结构的不同存储方法及相关算法进行比较分析。很多算法使用了参数化的模板,从而提高了算法中数据类型的通用性,支持高效的代码重用。

目录

  • 第1章 概论
  •    1.1 问题求解
  •       1.1.1 问题描述:股市的传言
  •       1.1.2 问题分析和抽象
  •       1.1.3 数据结构和算法设计
  •    1.2 数据结构
  •       1.2.1 数据的逻辑结构
  •       1.2.2 数据的存储结构
  •       1.2.3 抽象数据类型
  •    1.3 算法
  •       1.3.1 算法的概念
  •       1.3.2 算法设计
  •    1.4 算法分析
  •       1.4.1 渐进分析方法
  •       1.4.2 最佳、最差和平均情况
  •       1.4.3 时间和空间的折衷
  •       1.4.4 求解问题时数据结构的选择和评价
  •    本章小结
  •    习题
  •    上机题
  • 第2章 线性表
  •    2.1 线性表的概念
  •       2.1.1 线性表的抽象数据类型
  •       2.1.2 线性表的存储结构
  •       2.1.3 线性表运算分类
  •    2.2 顺序表
  •       2.2.1 顺序表的类定义
  •       2.2.2 顺序表的运算实现
  •    2.3 链表
  •       2.3.1 单链表
  •       2.3.2 双链表
  •       2.3.3 循环链表
  •    2.4 线性表实现方法的比较
  •    本章小结
  •    习题
  •    上机题
  • 第3章 栈与队列
  •    3.1 栈
  •       3.1.1 栈的抽象数据类型
  •       3.1.2 顺序栈
  •       3.1.3 链式栈
  •       3.1.4 表达式求值
  •       3.1.5 栈与递归
  •    3.2 队列
  •       3.2.1 队列的抽象数据类型
  •       3.2.2 顺序队列
  •       3.2.3 链式队列
  •    3.3 栈与队列的深入讨论
  •       3.3.1 顺序栈与链式栈的比较
  •       3.3.2 顺序队列与链式队列的比较
  •       3.3.3 限制存取点的表
  •    本章小结
  •    习题
  •    上机题
  • 第4章 字符串
  •    4.1 字符串的基本概念
  •       4.1.1 字符编码
  •       4.1.2 字符的编码顺序
  •       4.1.3 字符串抽象数据类型
  •    4.2 字符串的存储结构和实现
  •       4.2.1 字符串的顺序存储
  •       4.2.2 字符串类class String的存储结构
  •       4.2.3 字符串运算的实现
  •    4.3 字符串的模式匹配
  •       4.3.1 朴素的模式匹配算法
  •       4.3.2 字符串的特征向量
  •       4.3.3  KMP模式匹配算法
  •    本章小结
  •    习题
  •    上机题
  • 第5章 二叉树
  •    5.1 二叉树的概念
  •       5.1.1 二叉树的定义和基本术语
  •       5.1.2 满二叉树、完全二叉树、扩充二叉树
  •       5.1.3 二叉树的主要性质
  •    5.2 二叉树的周游
  •       5.2.1 二叉树的抽象数据类型
  •       5.2.2 深度优先周游二叉树
  •       5.2.3 广度优先周游二叉树
  •    5.3 二叉树的存储结构
  •       5.3.1 二叉树的链式存储结构
  •       5.3.2 完全二叉树的顺序存储结构
  •    5.4 二叉搜索树
  •    5.5 堆与优先队列
  •       5.5.1 堆的定义及其实现
  •       5.5.2 优先队列
  •    5.6  Huffman树及其应用
  •       5.6.1  Huffman树
  •       5.6.2  Huffman编码
  •    本章小结
  •    习题
  •    上机题
  • 第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.3 树的顺序存储结构
  •       6.3.1 带右链的先根次序表示
  •       6.3.2 带双标记的先根次序表示
  •       6.3.3 带度数的后根次序表示
  •       6.3.4 带双标记的层次次序表示
  •    6.4  K叉树
  •    本章小结
  •    习题
  •    上机题
  • 第7章 图
  •    7.1 图的定义和基本术语
  •    7.2 图的抽象数据类型
  •    7.3 图的存储结构
  •       7.3.1 相邻矩阵
  •       7.3.2 邻接表
  •       7.3.3 十字链表
  •    7.4 图的周游
  •       7.4.1 深度优先周游
  •       7.4.2 广度优先周游
  •       7.4.3 拓扑排序
  •    7.5 最短路径
  •       7.5.1 单源最短路径
  •       7.5.2 每对顶点之间的最短路径
  •    7.6 最小生成树
  •       7.6.1  Prim算法
  •       7.6.2  Kruskal算法
  •    本章小结
  •    习题
  •    上机题
  • 第8章 内排序
  •    8.1 排序问题的基本概念
  •    8.2 插入排序
  •       8.2.1 直接插入排序
  •       8.2.2  Shell排序
  •    8.3 选择排序
  •       8.3.1 直接选择排序
  •       8.3.2 堆排序
  •    8.4 交换排序
  •       8.4.1 冒泡排序
  •       8.4.2 快速排序
  •    8.5 归并排序
  •    8.6 分配排序和索引排序
  •       8.6.1 桶式排序
  •       8.6.2 基数排序
  •       8.6.3 索引排序
  •    8.7 排序算法的时间代价
  •       8.7.1 简单排序算法的时间代价
  •       8.7.2 排序算法的理论和实验时间
  •       8.7.3 排序问题的下限
  •    本章小结
  •    习题
  •    上机题
  • 第9章 文件管理和外排序
  •    9.1 主存储器和外存储器
  •    9.2 文件的组织和管理
  •       9.2.1 文件组织
  •       9.2.2  C++的流文件
  •    9.3 外排序
  •       9.3.1 置换选择排序
  •       9.3.2 二路外排序
  •       9.3.3 多路归并——选择树
  •    本章小结
  •    习题
  •    上机题
  • 第10章 检索
  •    10.1 基于线性表的检索
  •       10.1.1 顺序检索
  •       10.1.2 二分检索
  •       10.1.3 分块检索
  •    10.2 集合的检索
  •       10.2.1 集合的数学特性
  •       10.2.2 计算机中的集合
  •    10.3 散列方法
  •       10.3.1 散列函数
  •       10.3.2 开散列方法(拉链法)
  •       10.3.3 闭散列方法(开地址法)
  •       10.3.4 闭散列表的算法
  •       10.3.5 散列方法的效率分析
  •       10.3.6 散列方法的应用
  •    本章小结
  •    习题
  •    上机题
  • 第11章 索引技术
  •    11.1 线性索引
  •    11.2 静态索引——多分树
  •    11.3 倒排索引
  •       11.3.1 基于属性的倒排
  •       11.3.2 对正文文件的倒排
  •    11.4 动态索引
  •       11.4.1  B树
  •       11.4.2  B+树
  •       11.4.3  B树的性能分析
  •       11.4.4 动态索引和静态索引性能的比较
  •    11.5 位索引技术
  •       11.5.1 位图索引
  •       11.5.2 签名文件
  •    11.6 红黑树
  •       11.6.1 红黑树的定义
  •       11.6.2 红黑树的相关性质
  •       11.6.3 插入结点算法
  •       11.6.4 删除结点算法
  •    本章小结
  •    习题
  •    上机题
  • 第12章 高级数据结构
  •    12.1 多维数组
  •       12.1.1 多维数组的存储
  •       12.1.2 特殊矩阵
  •       12.1.3 稀疏矩阵
  •    12.2 广义表和存储管理
  •       12.2.1 广义表的定义和存储结构
  •       12.2.2 可利用空间表
  •       12.2.3 存储的动态分配和回收
  •       12.2.4 失败处理策略和无用单元回收
  •    12.3  Trie结构和Patricia树
  •    12.4 改进的二叉搜索树
  •       12.4.1 最佳二叉搜索树
  •       12.4.2 平衡的二叉搜索树
  •       12.4.3 伸展树
  •    本章小结
  •    习题
  •    上机题
  • 参考文献

资源下载

资源下载地址1:https://pan.baidu.com/s/1K9tdaeyH3tLg0EP3oHiCeQ

相关资源

网友留言