![]()
内容推荐 “数据结构与算法”是计算机科学与技术、软件工程等相关专业的重要基础课,是这些专业的核心课程之一,是一门集技术性、理论性和实践性于一体的课程。本书内容包括基本数据类型、抽象数据类型,线性表、链表、串、树和二叉树、图、递归与分治算法、贪心算法、分支限界法和动态规划法等内容;并重点介绍抽象数据类型、基本数据结构、C语言数据结构描述、数据结构的应用、算法设计与分析以及算法性能评价等内容,目的是让读者理解数据抽象与编程实现的关系,提高用计算机解决实际问题的能力, 本书结构合理,内容丰富,算法描述清晰,用C语言编写的算法代码都已调试通过,便于自学,可作为高等院校计算机科学与技术专业、军事院校的基础合训专业和其他相关专业的教材和参考书,也可供从事计算机软件开发的科技工作者参考。 作者简介 熊岳山 国防科技大学计算机学院教授,博士生导师。主要研究方向为计算机图形学、虚拟现实及智能计算等。高校计算机专业优秀教师奖励计划获得者,全军优秀教师,国防科技大学教学名师,国防科技大学名师质量奖、国防科技大学优秀教师—教学名师奖获得者,美国MathReview评论员。全国高等教育自学考试电工、电子和信息类教学指导委员会委员,中国仿真学会医疗仿真专委会委员,湖南省计算机学会机器视觉与医学影像专业委员会副主任委员,解放军总医院客座教授,国家科技项目评审入库专家。“数据结构与算法”课程被评为军队和湖南省线下一流课程,获军队和省级科研成果奖4项(一等奖1项、二等奖1项、三等奖2项),军队教学成果奖二等奖2项。作为“智能计算”团队负责人,带领“智能计算”团队获评湖南省首届优秀导师团队。 目录 第1章 数据结构概述 1.1 基本概念 1.1.1 数据、数据元素、数据对象 1.1.2 数据结构 1.2 数据结构的分类 1.3 数据类型 1.3.1 基本类型和组合类型 1.3.2 抽象数据类型 1.4 算法和算法分析 1.4.1 算法概念 1.4.2 算法分析 习题 第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.4.1 递归方程求解 2.4.2 生成函数求解递归方程 2.4.3 特征方程求解递归方程 2.4.4 递归树方法 2.5 队列 2.5.1 队列的抽象数据类型及其实现 *2.5.2 队列的应用——模拟银行活动 习题 第3章 链表 3.1 单链表 3.1.1 基本概念 3.1.2 单链表结点结构 3.1.3 单链表结构 3.1.4 栈的单链表实现 3.1.5 队列的单链表实现 3.1.6 单链表的应用举例 3.2 循环链表 3.3 双链表 习题 第4章 串 4.1 基本概念 4.2 串的存储 4.3 串结构和串的运算 4.4 模式匹配 4.4.1 朴素的模式匹配算法 4.4.2 KMP匹配算法 *4.4.3 BM匹配算法 习题 第5章 排序 5.1 基本概念 5.2 插入排序 5.2.1 直接插入排序 5.2.2 折半插入排序 5.2.3 Shell排序 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.6 归并排序 5.7 外部排序 5.7.1 二路合并排序 5.7.2 多路替代选择合并排序 5.7.3 最佳合并排序 习题 第6章 查找 6.1 基本概念 6.2 顺序查找 6.3 折半查找 6.4 分块查找 6.5 散列查找 6.5.1 概述 6.5.2 散列函数 6.5.3 冲突的处理 6.5.4 散列查找的效率 习题 第7章 树和二又树 7.1 树的概念 7.2 二叉树 7.2.1 二叉树的概念 7.2.2 二叉树的性质 7.2.3 二叉树的存储方式 7.2.4 树(树林)与二叉树的相互转换 7.3 树(树林)、二叉树的遍历 7.3.1 树(树林)的遍历 7.3.2 二叉树的遍历 7.4 抽象数据类型BinaryTree以及BinaryTree结构 7.4.1 抽象数据类型BinaryTree 7.4.2 一个完整的包含构建二叉树与遍历实现的例子 7.5 二叉树的遍历算法 7.5.1 非递归(使用栈)的遍历算法 7.5.2 线索化二叉树的遍历 习题 第8章 树结构的应用 8.1 二叉排序树 8.1.1 二叉排序树与BinarySTree结构 8.1.2 二叉排序树的检索、插入、删除运算 8.1.3 等概率查找对应的最佳二叉排序树 8.2 平衡的二叉排序树 8.2.1 平衡二叉排序树的定义 8.2.2 平衡二叉排序树的插入、删除 8.2.3 AVL树高度 8.3 B-树、Bt-树 8.4 键树和2-3树 8.4.1 键树 8.4.2 2-3树 8.5 Huffman最优树与树编码 8.5.1 Huffman最优树 8.5.2 树编码 8.6 堆排序 *8.7 判定树 *8.8 等价类和并查集 8.8.1 等价类 8.8.2 并查集 *8.9 红黑树 8.10 跳表 8.10.1 跳表时间复杂度分析 8.10.2 跳表的空间复杂度分析 8.10.3 高效的动态插入和删除 8.10.4 小结 习题 第9章 图 9.1 基本概念 9.2 图的存储表示 9.2.1 相邻矩阵表示图 9.2.2 图的邻接表表示 9.2.3 邻接多重表 9.3 基于邻接表表示的Graph结构 9.4 图的遍历 9.4.1 深度优先遍历 9.4.2 广度优先遍历 9.5 最小代价生成树 9.6 单源最短路径问题 9.7 每一对顶点间的最短路径问题 9.8 有向无回路图 9.8.1 DAG图和AOV、AOE网 9.8.2 AOV网的拓扑排序 9.8.3 AOE网的关键路径 习题 第10章 算法设计与分析 10.1 递归与分治 10.1.1 递归方法设计 10.1.2 分治法 10.2 回溯法 10.3 分支限界法 10.4 贪心算法 10.5 动态规划法 10.6 数据结构中的Catalan数 10.6.1 问题描述 10.6.2 问题解析 10.6.3 递归方程求解 习题 关键词索引 参考文献 |