教学时数:12学时。 教学内容: §3.1栈的定义与存储(2学时):栈的定义与特点;栈的顺序存储结构及其 算法实现:栈的链式存储结构及其算法实现。 §3.2栈的应用举例(3学时):栈在编译系统中的应用:括号匹配间题;表 达式的转换与求值。 §3.3递归(3学时):递归的概念:递归算法的实现、非递归模拟。 §3.4队列的定义与存储(4学时):队列的定义与特点:队列的顺序存储结 构及其算法实现:队列的链式存储结构及其算法实现。 考核要求:了解栈与队列的特点:掌握栈的顺序存储与链式存储的插入与删 除算法:掌握队列的顺序存储与链式存储的插入与删除算法:能综合运用栈来实 现表达式转换及求值等操作,理解栈的独特作用:理解递归的概念及递归算法的 特点,分析递归算法的执行过程,并能利用递归的思想解决一些实际问题。 第4章串 教学要点:串的逻辑结构定义、串的基本运算及其实现:串的匹配算法。 教学时数:6学时。 教学内容: §4.1串的存贮方式及基本运算(2学时):串的逻辑结构定义;串的存储结 构:串的基本运算算法。 S4.1串的模式匹配与应用(4学时):串的模式匹配的概念;Brute--Force 算法:KMP算法:串的应用。 考核要求:理解串的概念,区分空串与空格串;熟悉串的基本运算;掌握串 的两种存储结构及其算法实现:掌握串的模式匹配的算法思想,并能分析其匹配 效率;能利用串的基本操作分析相关的实际问题。 第5章数组 教学要点:数组的逻辑结构定义和存储方法:特殊矩阵和稀疏矩阵的压缩存 储方法:广义表的逻辑结构和存储结构。 教学时数:8学时 教学内容:
教学时数:12 学时。 教学内容: §3.1 栈的定义与存储(2 学时):栈的定义与特点;栈的顺序存储结构及其 算法实现;栈的链式存储结构及其算法实现。 §3.2 栈的应用举例(3 学时):栈在编译系统中的应用;括号匹配问题;表 达式的转换与求值。 §3.3 递归(3 学时): 递归的概念;递归算法的实现、非递归模拟。 §3.4 队列的定义与存储(4 学时):队列的定义与特点;队列的顺序存储结 构及其算法实现;队列的链式存储结构及其算法实现。 考核要求:了解栈与队列的特点;掌握栈的顺序存储与链式存储的插入与删 除算法;掌握队列的顺序存储与链式存储的插入与删除算法;能综合运用栈来实 现表达式转换及求值等操作,理解栈的独特作用;理解递归的概念及递归算法的 特点,分析递归算法的执行过程,并能利用递归的思想解决一些实际问题。 第 4 章 串 教学要点:串的逻辑结构定义、串的基本运算及其实现;串的匹配算法。 教学时数:6 学时。 教学内容: §4.1 串的存贮方式及基本运算(2 学时):串的逻辑结构定义;串的存储结 构;串的基本运算算法。 §4.1 串的模式匹配与应用(4 学时):串的模式匹配的概念;Brute-Force 算法;KMP 算法;串的应用。 考核要求:理解串的概念,区分空串与空格串;熟悉串的基本运算;掌握串 的两种存储结构及其算法实现;掌握串的模式匹配的算法思想,并能分析其匹配 效率;能利用串的基本操作分析相关的实际问题。 第 5 章 数组 教学要点:数组的逻辑结构定义和存储方法;特殊矩阵和稀疏矩阵的压缩存 储方法;广义表的逻辑结构和存储结构。 教学时数:8 学时。 教学内容:
S5.1数组的定义与存储(1学时):数组的定义;数组的基本操作数组的 存储结构。 §5.2矩陈的压缩存贮串的存贮方式及基本运算(5学时):对称矩阵的压缩 存储;对角矩阵的压缩存储:稀疏矩阵的压缩存储。 §5.3广义表的逻辑结构与存储结构(2学时):广义表的定义:广义表的操 作:广义表的存储结构。 考核要求:理解数组的特点及基本操作:熟练掌握数组以行序为主序及以列 序为主序的存储方式,并能计算其相对物理地址:理解特殊矩阵压缩存储的原理, 重点掌握对称矩阵及对角矩阵的压缩存储方法:理解稀疏矩阵的压缩存储方法, 掌握三元组顺序表的表示方法及其算法实现;理解稀疏矩阵的十字链表表示法, 了解其算法实现方法。 第6章树 教学要点:树的基本概念:二叉树的定义、性质、存储表示:二又树的遍历: 线索二叉树;森林和二叉树的相互转换;树的应用;哈夫受树及哈夫曼编码。 教学时数:12学时。 教学内容: §6.1树的定义与存储(2学时):数的定义:数的表示方法:数的基本术语: 数的基本操作;数的存储结构。 §6.2二叉树的性质及存贮方式(3学时):二叉树的基本概念:二叉树的性 质;二叉树的存储结构;二叉树的基本操作及实现。 §6.3二又树的遍历(3学时):二叉树的遍历:二叉树遍历的应用。 §6.4树、森林与二叉树的转换(2学时) 树转换为二叉树:森林转换为二叉树:二叉树还原为树和森林:树的道遍历。 §6.5 Huffman树及其应用(2学时):Huffman树;Huffman树的应用。 考核要求:理解区别树的有关术语及其含义:熟悉树的表示方法,掌握树的 双亲孩子表示法及孩子兄弟表示法:熟悉二叉树的五个基本性质:理解二叉树顺 序存储、链式存储结构及其类型说明,掌握二叉链表表示方式及其常用算法:掌 握并区别二叉树的三种遍历方法,并以遍历为基础在二叉树上实现几种运算:熟 悉树、森林转换为数的方法及二叉树还原为数和森林的方法;能分别以两种方式
§5.1 数组的定义与存储(1 学时):数组的定义;数组的基本操作;数组的 存储结构。 §5.2 矩陈的压缩存贮串的存贮方式及基本运算(5 学时):对称矩阵的压缩 存储;对角矩阵的压缩存储;稀疏矩阵的压缩存储。 §5.3 广义表的逻辑结构与存储结构(2 学时):广义表的定义;广义表的操 作;广义表的存储结构。 考核要求:理解数组的特点及基本操作;熟练掌握数组以行序为主序及以列 序为主序的存储方式,并能计算其相对物理地址;理解特殊矩阵压缩存储的原理, 重点掌握对称矩阵及对角矩阵的压缩存储方法;理解稀疏矩阵的压缩存储方法, 掌握三元组顺序表的表示方法及其算法实现;理解稀疏矩阵的十字链表表示法, 了解其算法实现方法。 第 6 章 树 教学要点:树的基本概念;二叉树的定义、性质、存储表示;二叉树的遍历; 线索二叉树;森林和二叉树的相互转换;树的应用;哈夫曼树及哈夫曼编码。 教学时数:12 学时。 教学内容: §6.1 树的定义与存储(2 学时):数的定义;数的表示方法;数的基本术语; 数的基本操作;数的存储结构。 §6.2 二叉树的性质及存贮方式(3 学时):二叉树的基本概念;二叉树的性 质;二叉树的存储结构;二叉树的基本操作及实现。 §6.3 二叉树的遍历(3 学时):二叉树的遍历;二叉树遍历的应用。 §6.4 树、森林与二叉树的转换(2 学时) 树转换为二叉树;森林转换为二叉树;二叉树还原为树和森林;树的遍历。 §6.5 Huffman 树及其应用(2 学时):Huffman 树;Huffman 树的应用。 考核要求:理解区别树的有关术语及其含义;熟悉树的表示方法,掌握树的 双亲孩子表示法及孩子兄弟表示法;熟悉二叉树的五个基本性质;理解二叉树顺 序存储、链式存储结构及其类型说明,掌握二叉链表表示方式及其常用算法;掌 握并区别二叉树的三种遍历方法,并以遍历为基础在二叉树上实现几种运算;熟 悉树、森林转换为数的方法及二叉树还原为数和森林的方法;能分别以两种方式
实现树和森林的遍历:理解Huffman树的概念,能构造Huffman树并计算相应的 WPL:掌握Huffman树在编码及判定问题中的应用,理解Huffman编码的算法。 第7章图 教学要点:图的基本概念、存储表示(邻接矩阵、邻接表、十字链表,邻接 多重表):图的遍历、图的连通性问题;关键路径;最短路径。 教学时数:14学时。 教学内容: §7.1图的定义及基本操作(2学时):图的定义与术语:图的基本操作。 §7.2图的存贮结构(2学时):邻接矩阵存储方法:邻接表存储方法:十字 链表存储方法:邻接多重表存储方法。 §7.3图的遍历(3学时):深度优先搜索;广度优先搜索。 §7.4最小生成树(4学时):最小生成树的基本概念;Prim算法构造最小 生成树:Kruskal算法构造最小生成树。 §7.5最短路径(3学时):单源最最短路径;每对顶点之间的最短路径。 考核要求:理解并区分图的基本概念:掌握有向图及无向图的邻接表及邻接 矩阵的表示方法,了解十字链表及邻接多重表的表示方法:掌握图的深度优先搜 索及广度优先搜索的方法,理解相应的算法:理解最小生成树的概念,并能运用 Prim算法及Kruskal算法构造最小生成树,掌握Prim算法的执行过程:理解 Dijjstra算法思想,并能利用该方法求单源最短路径,熟悉其执行过程:掌握 用Floyd算法求每对顶点之间最短路径的方法。 第8章内部排序 教学要点:插入排序、快速排序、选择排序、归并排序:排序的基本思想和 算法分析。 教学时数:6学时。 教学内容: §8.1插入排序(1学时):直接插入排序:希尔排序。 §8.2选择排序(2学时):直接选择排序:堆排序。 §8.3交换排序(2学时):冒泡排序;快速排序。 §8.4归并排序(1学时)
实现树和森林的遍历;理解 Huffman 树的概念,能构造 Huffman 树并计算相应的 WPL;掌握 Huffman 树在编码及判定问题中的应用,理解 Huffman 编码的算法。 第 7 章 图 教学要点:图的基本概念、存储表示(邻接矩阵、邻接表、十字链表,邻接 多重表);图的遍历、图的连通性问题;关键路径;最短路径。 教学时数:14 学时。 教学内容: §7.1 图的定义及基本操作(2 学时):图的定义与术语;图的基本操作。 §7.2 图的存贮结构(2 学时):邻接矩阵存储方法;邻接表存储方法;十字 链表存储方法;邻接多重表存储方法。 §7.3 图的遍历(3 学时):深度优先搜索;广度优先搜索。 §7.4 最小生成树(4 学时):最小生成树的基本概念;Prim 算法构造最小 生成树;Kruskal 算法构造最小生成树。 §7.5 最短路径(3 学时):单源最最短路径;每对顶点之间的最短路径。 考核要求:理解并区分图的基本概念;掌握有向图及无向图的邻接表及邻接 矩阵的表示方法,了解十字链表及邻接多重表的表示方法;掌握图的深度优先搜 索及广度优先搜索的方法,理解相应的算法;理解最小生成树的概念,并能运用 Prim 算法及 Kruskal 算法构造最小生成树,掌握 Prim 算法的执行过程;理解 Dijjstra 算法思想,并能利用该方法求单源最短路径,熟悉其执行过程;掌握 用 Floyd 算法求每对顶点之间最短路径的方法。 第 8 章 内部排序 教学要点:插入排序、快速排序、选择排序、归并排序;排序的基本思想和 算法分析。 教学时数:6 学时。 教学内容: §8.1 插入排序(1 学时):直接插入排序;希尔排序。 §8.2 选择排序(2 学时):直接选择排序;堆排序。 §8.3 交换排序(2 学时):冒泡排序;快速排序。 §8.4 归并排序(1 学时)
考核要求:理解排序的基本概念;掌握插入排序、交换排序、选择排序的基 本算法思想,并能比较其算法性能:熟练掌握直接插入排序、希尔排序、直接选 择排序、冒泡排序的算法设计;掌握推排序、二路归并排序的算法执行过程;能 根据实际问题选择相应的排序算法。 实验部分 基本要求:深入理解各种数据结构的数据类型定义方式以及有关算法的实现 方法,培养独立的、良好的编写程序的能力及调试修改程序的能力;锻炼学生编 制高效可靠的程序的能力;培养学生一定的解决实际问题的能力。 项目总表: 学时项目类 序号 实验项目名称 项目类型 数 别 1 线性表 6 基础 必做 2 栈与队列 4 基础 必做 递归/栈的应用 4 设计 选做 串的匹配算法 2 设计 选做 对称矩阵与稀疏矩阵存储与运 4 设计 必做 算 二叉树的基本操作及遍历 基础 必做 求哈夫曼编码的算法 2 综合 必做 有向图的建立与遍历 基础 必做 9 图的最短路径 4 综合 必做 10 排序算法 2 基础 必做 实验内容: 1.线性表 实验内容:顺序表、链表的插入与删除:有序线性表的合并:循环链表的应 用
考核要求:理解排序的基本概念;掌握插入排序、交换排序、选择排序的基 本算法思想,并能比较其算法性能;熟练掌握直接插入排序、希尔排序、直接选 择排序、冒泡排序的算法设计;掌握推排序、二路归并排序的算法执行过程;能 根据实际问题选择相应的排序算法。 实验部分 基本要求:深入理解各种数据结构的数据类型定义方式以及有关算法的实现 方法,培养独立的、良好的编写程序的能力及调试修改程序的能力;锻炼学生编 制高效可靠的程序的能力;培养学生一定的解决实际问题的能力。 项目总表: 序号 实验项目名称 学时 数 项目类 别 项目类型 1 线性表 6 基础 必做 2 栈与队列 4 基础 必做 3 递归/栈的应用 4 设计 选做 4 串的匹配算法 2 设计 选做 5 对称矩阵与稀疏矩阵存储与运 算 4 设计 必做 6 二叉树的基本操作及遍历 4 基础 必做 7 求哈夫曼编码的算法 2 综合 必做 8 有向图的建立与遍历 4 基础 必做 9 图的最短路径 4 综合 必做 10 排序算法 2 基础 必做 实验内容: 1.线性表 实验内容:顺序表、链表的插入与删除;有序线性表的合并;循环链表的应 用
实验目的:掌握线性表的两种存储方式的算法通过有序线性表的合并进 步理解单链表的应用通过类似于约瑟夫问题的算法熟悉循环链表的算法设计。 实验要求:顺序表与单链表算法实践是每一个学生必须要完成的内容,循环 链表的算法设计可根据学生的具体情况加以取舍。 2.栈与队列 实验内容:栈与队列的数据类型定义及常用算法。 实验目的:进一步了解栈及队列的特殊性,掌握其特点。 实验要求:栈是较为重要的数据结构,也是递归实现机制的基础,故对于栈 的基本算法要求每一个学生尽可能掌握。 3.递归/栈的应用 实验内容:递归的算法设计:中缀表达式向后缀表达式的转换算法」 实验目的:使学生了解递归的算法设计思想,初步掌握其特点:通过中缀表 达式向后缀表达式的转换,使学生进一步了解栈的应用及其在编译系统中的作 用。 实验要求:这是一个选做的实验项目,根据时间督促学生至少能选做其一。 4.串的匹配算法 实验内容:串的基本操作及模式匹配。 实验目的:使学生通过实践体会串的不同存储结构对应的不同算法,进一步 了解P算法。 实验要求:由学生根据自己的实际情况自行选择。 5.稀疏矩阵的三元组存储方法的运算 实验内容:两个稀疏矩阵的加法运算 实验目的:使学生通过实践,熟悉特殊矩阵压缩存储方法,进一步了解三元 组存储方法的算法设计。 实验要求:数组是较为重要的一种数据结构,在矩阵运算中更尤其重要的作 用,该实习项目尽可能要求学生整体掌握。 6.二叉树的基本操作及遍历 实验内容:二叉树的建立及基本运算;二叉树的的遍历。 实验目的:使学生通过实践理解二叉树的存储方式,熟悉其基本算法,并重
实验目的:掌握线性表的两种存储方式的算法;通过有序线性表的合并进一 步理解单链表的应用通过类似于约瑟夫问题的算法熟悉循环链表的算法设计。 实验要求:顺序表与单链表算法实践是每一个学生必须要完成的内容,循环 链表的算法设计可根据学生的具体情况加以取舍。 2.栈与队列 实验内容:栈与队列的数据类型定义及常用算法。 实验目的:进一步了解栈及队列的特殊性,掌握其特点。 实验要求:栈是较为重要的数据结构,也是递归实现机制的基础,故对于栈 的基本算法要求每一个学生尽可能掌握。 3.递归/栈的应用 实验内容:递归的算法设计;中缀表达式向后缀表达式的转换算法。 实验目的:使学生了解递归的算法设计思想,初步掌握其特点;通过中缀表 达式向后缀表达式的转换,使学生进一步了解栈的应用及其在编译系统中的作 用。 实验要求:这是一个选做的实验项目,根据时间督促学生至少能选做其一。 4.串的匹配算法 实验内容:串的基本操作及模式匹配。 实验目的:使学生通过实践体会串的不同存储结构对应的不同算法,进一步 了解 KMP 算法。 实验要求:由学生根据自己的实际情况自行选择。 5.稀疏矩阵的三元组存储方法的运算 实验内容:两个稀疏矩阵的加法运算。 实验目的:使学生通过实践,熟悉特殊矩阵压缩存储方法,进一步了解三元 组存储方法的算法设计。 实验要求:数组是较为重要的一种数据结构,在矩阵运算中更尤其重要的作 用,该实习项目尽可能要求学生整体掌握。 6.二叉树的基本操作及遍历 实验内容:二叉树的建立及基本运算;二叉树的的遍历。 实验目的:使学生通过实践理解二叉树的存储方式,熟悉其基本算法,并重