![]()
内容推荐 本书是根据教育部高等学校计算机科学与技术专业教指委公布的《高等学校计算机科学与技术专业公共核心知识体系与课程》和教育部考试中心公布的《全国硕士研究生入学考试计算机科学与技术专业基础综合考试联考考试大纲》编写的学习数据结构算法的辅导教材。全书共分8章,第1章介绍数据结构的基本算法设计和简单的算法分析方法;第2~6章给出大量算法题,覆盖了基本数据结构和算法的全部知识点,包括线性表、栈、队列、数组、字符串、广义表、树与二叉树、图等;第7~8章给出了相当多的算法,覆盖了查找和排序方面的所有知识点。 本书融入了作者30多年数据结构教学的经验,考虑了不同层次学生学习的需要,精选了1138道算法题,覆盖了相关知识点的方方面面,既可以作为大学计算机专业学习数据结构课程的辅助教材,也可以作为计算机专业考研的辅导教材。 作者简介 殷人昆,清华大学计算机系教授,1985年赴日本东京理科大学做访问学者,研究方向为软件工程的质量管理和软件产品的质量评价。主要教学工作为计算机系大学本科“数据结构”“软件工程”和研究生“软件工程设计与技术”“软件项目管理”课程负责人,主持教育部一微软精品课程“数据结构”的建设。曾与人合作或单独编写和出版教材20余部,其中,《数据结构》教材被评为教育部普通高等教育“十一五”国家级规划教材,并于2005年获“北京市精品教材”。曾在核心刊物和专业会议发表论文多篇,并参加或主持多项科研项目。 目录 第1章 数据结构绪论 1.1 简单的编程问题 1.2 简单的算法设计 1.2.1 枚举法编程 1.2.2 递推法编程 1.2.3 递归法编程 1.2.4 迭代法编程 1.2.5 动态规划法编程 1.3 简单的算法分析 1.3.1 语句的执行频度 1.3.2 时间复杂度度量 1.3.3 有关算法分析的选择题 第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.3.3 单链表的相关算法 2.4 循环单链表 2.4.1 循环单链表的定义 2.4.2 循环单链表的基本运算 2.4.3 循环单链表的相关算法 2.5 双向链表 2.5.1 双向链表的定义与结构 2.5.2 双向链表的基本运算 2.5.3 双向链表的相关算法 2.5.4 异或双向链表 2.6 静态链表 2.6.1 静态链表的结构定义 2.6.2 静态链表的基本运算 2.7 线性表的应用实例 2.7.1 约瑟夫问题求解 2.7.2 用位向量表示集合 2.7.3 用有序链表表示集合 2.7.4 多项式的链表存储表示 2.7.5 大整数运算 第3章 栈和队列 3.1 栈 3.1.1 栈的概念 3.1.2 顺序栈 3.1.3 链式栈 3.2 队列 3.2.1 队列的定义及基本运算 3.2.2 顺序队列 3.2.3 链式队列 3.2.4 双端队列 3.2.5 优先队列 3.3 栈和队列的应用 3.3.1 栈在数制转换和括号配对中的应用 3.3.2 栈在表达式计算中的应用 3.3.3 栈和队列的其他应用 3.3.4 优先队列的应用 3.4 栈与递归 3.4.1 递归的概念 3.4.2 分治法与递归 3.4.3 减治法与递归 3.4.4 回溯法与递归 3.4.5 贪心法 3.4.6 动态规划法 第4章 多维数组、字符串与广义表 4.1 多维数组 4.1.1 一维数组 4.1.2 二维数组 4.2 特殊矩阵与稀疏矩阵 4.2.1 特殊矩阵与稀疏矩阵的概念 4.2.2 特殊矩阵相关的算法 4.2.3 稀疏矩阵相关的算法 4.3 字符串 4.3.1 字符串的概念 4.3.2 顺序串相关的算法 4.3.3 堆分配串相关的算法 4.3.4 块链存储字符串相关的算法 4.3.5 模式匹配算法 4.4 广义表 4.4.1 广义表的概念 4.4.2 头尾表示广义表相关的算法 4.4.3 层次表示广义表相关的算法 第5章 树与二叉树 5.1 树的基本概念 5.1.1 树的概念 5.1.2 树的双亲存储表示 5.1.3 树的子女链表存储表示 5.1.4 树的子女-兄弟链表存储表示 5.1.5 树的标准链表表示 5.1.6 树的广义表存储表示 5.2 二叉树及其存储表示 5.2.1 二叉树的概念 5.2.2 二叉树的顺序存储结构 5.2.3 二叉树的链式存储结构 5.3 二叉树的遍历 5.3.1 二叉树遍历的基本运算 5.3.2 创建二叉树的算法 5.3.3 二叉树遍历的非递归算法 5.3.4 二叉树遍历相关的算法 5.3.5 表达式树 5.4 线索二叉树 5.4.1 线索二叉树的结构定义 5.4.2 中序线索二叉树 5.4.3 先序和后序线索二叉树 5.5 树与森林的遍历 5.5.1 树与森林遍历的概要 5.5.2 基于树的双亲表示的遍历算法 5.5.3 基于子女链表表示的树的遍历算法 5.5.4 基于子女-兄弟链表表示的树的遍历算法 5.6 Huffman树 5.6.1 Huffman树及其结构定义 5.6.2 Huffman树相关的算法 5.6.3 Huffman编码相关的算法 5.6.4 最佳判定树相关的算法 5.7 堆 5.7.1 堆的结构定义 5.7.2 小根堆的基本运算 5.7.3 小根堆相关的算法 5.8 并查集 5.8.1 并查集的结构定义 5.8.2 并查集主要操作的实现 第6章 图 6.1 图的基本概念 6.1.1 图的基本定义与特征 6.1.2 图算法实例 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.3.5 双连通图的关节点 6.4 最小生成树 6.4.1 最小生成树的概念与定义 6.4.2 最小生成树相关的算法 6.5 最短路径 6.5.1 最短路径的概念 6.5.2 单源最短路径相关的算法 6.5.3 所有顶点间最短路径相关的算法 6.6 拓扑排序和关键路径 6.6.1 AOV网与拓扑排序 6.6.2 AOE网与关键路径 6.7 图的其他应用 6.7.1 算术表达式的计算 6.7.2 二部图 |