数据结构与算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
华南师范大学软件学院
(6 学时)
2.图的存储结构; 3.图的建立和遍历; 4.图的生成树; 5.最短路径; 6.图的遍历、图的生成算法。 重点: 图的定义及相关概念;图的存储结构和遍历 算法(图的深度优先搜索、广度优先搜索遍历算 法) ,以及生成最小生成树的方法。 难点: 图的邻接表、十字链表、邻接多重表表示法 及相关算法;最小生成树及普利姆算法。 基本内容: 1.查找的基本概念; 2.顺序查找; 3.索引查找; 4.树表查找(二叉排序树定义及查找,二 叉平衡树的定义) ;
第7章 图 (4 学时)
wk.baidu.com
第9章 排序 (4 学时)
7
华南师范大学软件学院
实验目标: 理解基本的经典算法,掌握递归算法、分治 算法设计与 算法等算法设计的思想与实现步骤。 分析 实验任务: 第 11 章 (4 学时) 1. 采用分治策略求数组中元素的最大值。 2. N 皇后问题。 复习 (2 学时) 项目 检查实践项目(见下面) 项目内容(包括项目环境、目标、要求) 项目环境: 实践内容 ( 0 学时) 【补充说明】 : 本 课程的实践项目 为课外布置内 容,让 2-3 个学 生组队,选择其 中的 1 个或 2 个 项目进行分工、 设计、编码、测 试等步骤,要求 每位学生至少完 成 1 个功能模 块,最后写成项 目文档,并于期 末检查上交。实 践项目的成绩算 作实验成绩的 20%。 项目 2 项目 1 Visual C++ 6.0 或者 Visual C++ 2005 Express 项目目标: 输入任意合法含括号的四则运算结果,熟悉 栈的相关操作与应用 项目要求: 从键盘上输入中缀算术表达式,计算出表达 算术表达式 式的值,具体如下: 求值 1. 以字符序列输入:包括加、减、乘、除的 正确的四则运算算式 (可以包含括号, 不 包含变量和函数调用) ; 2. 编写程序, 利用栈等将中缀表达式转换为 后缀表达式; 3. 计算该表达式的值,并输出到屏幕。 项目环境: Visual C++ 6.0 或者 Visual C++ 2005 Express 项目目标: 对输入的文字进行处理,掌握链表数据结构 与算法设计,熟悉字符的相关操作。 项目要求: 输入一页文字, 程序可以统计出文字、 数字、 简单本文编 空格的个数。静态存储一页文章,每行最多不超 辑器 过 100 个字符,共 N 行。具体要求如下: 1. 分别统计出其中英文字母数和空格数及 整篇文章总字数; 2. 统计某一字符串在文章中出现的次数, 并 输出该次数; 3. 删除某一字符或者子串, 并将后面的字符 前移。
先行课程
C 语言程序设计、面向对象程序设计(C++语言)、离散数学 名称 出版社 ISBN 号 出版时间 获奖情况
选用教材
数据结构与算 高等学校计算 清 华 大 学 出 9787302280309 法 教 程 ( C++ 机课程规划教 版社 2012-11-01 版) 材 数据结构与算 教育部-微软 清 华 大 学 出 9787302280293 法教程实验和 精品课程建设 版社 2012-10-01 课程设计 立项项目 教材配套的教学网站: http://teachhelp.changeip.net:9988/ (计划逐步建立自己的教学资料网,包含课件、实验素材、 答案、常用数据结构函数库以及实践项目的相关资料。 ) 参考书目: 《2014 年考研计算机统考大纲-数据结构》 《数据结构(C 语言版)》 ,严蔚敏,清华大学出版社。 笔试 机试 平时成绩 10% 成绩评定方法 实验成绩 50% 期末成绩 40%
第8章 查找 (6 学时)
5.散列查找。 重点: 顺序查找、二分查找、分块查找、二叉排序 树查找的基本思想和算法;散列法基本思想、散 列函数的常用构造方法;哈希表的查找算法及分 析。 难点: 二叉排序树、平衡二叉树、B-树 以及 B+树 各自的思想、算法、性能分析。 基本内容: 1.排序的基本概念; 2.插入排序(直接插入排序、折半插入排 序、希尔排序) ;
(10 学时) 重点: 二叉树的顺序、链式存储结构;树的链式存 储结构的 3 种表示法;二叉树的遍历次序及算法 (递归与非递归) ;赫夫曼树(最优二叉树)和 赫夫曼编码的存储表示。 难点: 二叉树的 5 条性质;先、中、后序遍历二叉 树的非递归算法;赫夫曼编码的算法。 第7章 图 基本内容: 1.图的定义和术语;
第2章 教学内容 ( 72 学时) 线性表 (8 学时)
第3章 栈和队列 (6 学时)
第4章 串 (4 学时)
基本内容: 1. 串的概念及其运算; 2. 串的存储结构;
2
华南师范大学软件学院
3. 串的实际应用(字符及子串的查找和匹 配) 。 重点: 顺序存储结构下串连接、求子串操作的算 法;堆分配存储结构下生成串、求串长、串比较、 清空串、串连接、求子串、插入等操作的算法。 难点: 串的模式匹配 KMP 算法。 基本内容: 1.数组的定义、基本运算和存储结构 ; 2.特殊矩阵的压缩存储 ; 3.广义表的定义、术语、存储结构、运算; 4.递归算法设计。 数组和广义 重点: 表 数组各种基本操作的算法;稀疏矩阵的三元 (6 学时) 组顺序表压缩存储方法;广义表的链表存储结构 及基本操作。 难点: 矩阵的压缩存储;稀疏矩阵的行逻辑链接的 顺序表及十字链表压缩存储方法。 基本内容: 1.树的定义和表示; 2.二叉树的定义、重要性质、存储结构和 运算; 3.二叉树的遍历、线索、排序; 4.二叉树与树和森林的转换; 第6章 树 5.树的应用(二叉排序树、哈夫曼树及其 应用) 。 第5章
课程资源
考核方式
作品 其他 开卷 闭卷
软硬件要求
教室和机房需要安装 Visual C++ 6.0
1
华南师范大学软件学院
章节
教学内容 (包括基本内容、 重点难点、 学时分配) 基本内容: 1.数据结构的基本概念(数据、数据元素、 数据类型和数据结构、逻辑结构、存储结构) ;
第1章 绪论 (2 学时)
是否双语教学 是否考研课程 学时 108
是 是 周学时
否 否 4+2=6
上机实验 36
项目实践 0
课程描述
数据结构是计算机专业和软件工程专业中一门重要的专 业基础课程。在计算机软件的各个领域中均会使用到数据结构 的有关知识。当用计算机来解决实际问题时,就要涉及到数据 的表示及数据的处理,而数据表示及数据处理正是数据结构课 程的主要研究对象,通过这两方面内容的学习,是学习后续课 程《数据库系统》 、 《操作系统》 、 《编译原理》等计算机专业课 程的必备条件, 同时为后续的软件课程打下厚实的基础。 因此, 数据结构课程在计算机应用专业中具有举足轻重的作用。 本课程的任务是:在基础方面,要求学生掌握常用数据结 构的基本概念及其不同的实现方法;在技能方面,通过系统学 习能够在不同存储结构上实现不同的运算,并对算法设计的方 式和技巧有所体会。使学生较全面的掌握各种常用的数据结 构,提高运用数据结构解决实际问题的能力。
全日制本科教学大纲
教 学 单 位 课 程 名 称 课 程 编 号 学 时 108 软件学院 数据结构与算法(C++描述) 20H582a3 学 分 软件工程 潘家辉 杨 滨 5
适 用 专 业 主 讲 教 师 教 学 伙 伴
2013 年 9 月
华南师范大学软件学院
课程类别 开课学期 学分 学时分配
核心课程 第 3 学期 5 课堂教学 72
第9章 排序 (8 学时)
3.交换排序(冒泡排序、快速排序) ; 4.选择排序(简单选择排序、堆排序) ; 5.各种排序方法比较。 重点: 各种内部排序方法的基本思想和特点;各种 排序方法的优缺点、时、空性能和适用场合;插 入排序、交换排序的实现。
4
华南师范大学软件学院
难点: 3 种选择排序的思想、算法、性能分析;归 并排序的思想、算法、性能分析。 基本内容: 1. 文件的基本概念; 2. 顺序文件; 3. 索引文件; 第 10 章 文件 (4 学时) 4. 索引顺序文件; 5. 散列文件; 6. 多关键字文件。 重点: 文件的概念,索引文件的理解, B+树与 B树的差异。 难点:无 基本内容: 1. 递归算法; 2. 分治算法; 3. 动态规划算法; 第 11 章 算法设计与 分析 (8 学时) 4. 算法分析; 5. 可计算性问题; 6. 实例研究。 重点: 讨论了算法设计技巧,并在研究算法的性 能、效率以及对运行时间分析的基础上理解了一 些高级数据结构。 难点: 递归算法与分治算法的实现。 基本内容: 复习 (4 学时) 《数据结构与算法》的课程总结与重点回 顾。 重点:无 难点:无 实验 实验内容 ( 36 学时) 第1章 绪论 (2 学时) 实验内容(包括实验目标、任务以及学时分配) 实验目标: 理解抽象数据类型 ADT 的基本概念,学会运 用 C++的类设计实现 ADT 的应用。
2.算法描述和算法评价。 重点: 四种逻辑结构。 难点: 掌握算法复杂度的概念及分析方法(时间与 空间)。 基本内容: 1.线性表的概念及运算; 2.顺序表及基本运算; 3.单链表及基本运算; 4.循环链表和双链表; 5.顺序存储结构与链式存储结构的比较。 重点: 对线性表做插入、删除等操作的算法;单链 表和循环链表的结构特点与基本运算。 难点: 线性表的顺序表示和实现; 线性表的链式表 示和实现。 基本内容: 1.栈和队列的概念及运算; 2.栈和队列的顺序、链接存储; 3.栈和队列的插入、删除算法及其应用。 重点: 栈的顺序存储结构的表示与实现;链队列存 储结构(链式)的表示;构造、销毁链队列以及 插入、删除元素的算法。 难点: 循环队列(队列的顺序表示和实现)。
5
华南师范大学软件学院
实验任务: 1. 计算任意位数的∏. 2. 定义复数的类,在复数加法的基础上, 在类中增加减法、乘法操作。在主程序 中,正确定义对象,输入数据,调用各 种操作。调试运行程序。 实验目标: 了解和熟悉链表存储结构,它是本课程链表 存储表示的基础。认识到链表存储结构可用于线 性表、串以及稀疏矩阵。掌握在链表存储结构前 提下的各种主要运算。 实验任务: 1. 一元多项式的表示。 2. 不带头结点形式的单链表。 实验目标: 第3章 栈和队列 (4 学时) 使学生深入了解栈和队列的特征,掌握在实 际问题背景下的灵活运用。 实验任务: 1. 表达式求值。 2. 编写一个程序,反映病人到医院看病,排 队看医生的情况。 实验目标: 第4章 串 (2 学时) 掌握字符串作为输入输出常量的使用及编 程方法。 实验任务: 1.设计一个微型文本编辑程序。 2.字符串操作,根据字母映射表进行加密。 实验目标: 了解和熟悉以数组作为顺序存储结构,它是 第5章 本课程顺序存储表示的基础。认识到顺序存储结 数组和广义 构可用于线性表、串以及稀疏矩阵。掌握在顺序 存储结构前提下的各种主要运算。 表 (2 学时) 实验任务: 1. 5X5 阶螺旋方阵。 2. m 元多项式的表示。 第6章 树 (4 学时) 实验目标: 通过本实验使学生深刻理解二叉树的性质 和存储结构,熟练掌握二叉树的遍历算法。认识
6
第2章 线性表 (4 学时)
华南师范大学软件学院
哈夫曼树、哈夫曼编码的作用和意义。 实验任务: 1. 树与等价关系的应用问题。 2. 编写一个程序,用二叉树表示算术表达 式。 3. 改进课本提出的哈夫曼树类,通过指向函 数指针作为参数实现字符位置的查找。 实验目标: 理解图的基本概念,两种主要的存储结构。 掌握在邻接链表存储结构下的图的深度优先递 归遍历、广度优先遍历。 实验任务: 1. 周游世界(哈密尔顿圈)问题。 2. 改进课本实现的求最小生成树的 Kruskal 算法。 实验目标: 第8章 查找 (2 学时) 了解静态查找、动态查找和哈希(散列)搜 索表的基本方法。 实验任务: 1. 查找 3 个数组的最小共同元素。 2. 试编程判断一个二叉排序树是否为平衡 二叉树。 实验目标: 理解各种排序方法的基本思想及其特点,熟 悉各种排序方法的排序过程。通过实验对各种内 部方法的时间复杂度建立。 实验任务: 1.统计宴会中来宾数目的最大值。 2.各种排序算法运行时间的测试。 3. 以带头结点的单链表为存储结构实现简单 选择排序。 实验目标: 第 10 章 文件 (2 学时) 介绍基于磁盘文件的应用开发,理解与算法 和数据结构设计有关的基础知识。 实验任务: 1.编写一个程序,实现文件(主文件和索引 文件)访问。
华南师范大学软件学院
(6 学时)
2.图的存储结构; 3.图的建立和遍历; 4.图的生成树; 5.最短路径; 6.图的遍历、图的生成算法。 重点: 图的定义及相关概念;图的存储结构和遍历 算法(图的深度优先搜索、广度优先搜索遍历算 法) ,以及生成最小生成树的方法。 难点: 图的邻接表、十字链表、邻接多重表表示法 及相关算法;最小生成树及普利姆算法。 基本内容: 1.查找的基本概念; 2.顺序查找; 3.索引查找; 4.树表查找(二叉排序树定义及查找,二 叉平衡树的定义) ;
第7章 图 (4 学时)
wk.baidu.com
第9章 排序 (4 学时)
7
华南师范大学软件学院
实验目标: 理解基本的经典算法,掌握递归算法、分治 算法设计与 算法等算法设计的思想与实现步骤。 分析 实验任务: 第 11 章 (4 学时) 1. 采用分治策略求数组中元素的最大值。 2. N 皇后问题。 复习 (2 学时) 项目 检查实践项目(见下面) 项目内容(包括项目环境、目标、要求) 项目环境: 实践内容 ( 0 学时) 【补充说明】 : 本 课程的实践项目 为课外布置内 容,让 2-3 个学 生组队,选择其 中的 1 个或 2 个 项目进行分工、 设计、编码、测 试等步骤,要求 每位学生至少完 成 1 个功能模 块,最后写成项 目文档,并于期 末检查上交。实 践项目的成绩算 作实验成绩的 20%。 项目 2 项目 1 Visual C++ 6.0 或者 Visual C++ 2005 Express 项目目标: 输入任意合法含括号的四则运算结果,熟悉 栈的相关操作与应用 项目要求: 从键盘上输入中缀算术表达式,计算出表达 算术表达式 式的值,具体如下: 求值 1. 以字符序列输入:包括加、减、乘、除的 正确的四则运算算式 (可以包含括号, 不 包含变量和函数调用) ; 2. 编写程序, 利用栈等将中缀表达式转换为 后缀表达式; 3. 计算该表达式的值,并输出到屏幕。 项目环境: Visual C++ 6.0 或者 Visual C++ 2005 Express 项目目标: 对输入的文字进行处理,掌握链表数据结构 与算法设计,熟悉字符的相关操作。 项目要求: 输入一页文字, 程序可以统计出文字、 数字、 简单本文编 空格的个数。静态存储一页文章,每行最多不超 辑器 过 100 个字符,共 N 行。具体要求如下: 1. 分别统计出其中英文字母数和空格数及 整篇文章总字数; 2. 统计某一字符串在文章中出现的次数, 并 输出该次数; 3. 删除某一字符或者子串, 并将后面的字符 前移。
先行课程
C 语言程序设计、面向对象程序设计(C++语言)、离散数学 名称 出版社 ISBN 号 出版时间 获奖情况
选用教材
数据结构与算 高等学校计算 清 华 大 学 出 9787302280309 法 教 程 ( C++ 机课程规划教 版社 2012-11-01 版) 材 数据结构与算 教育部-微软 清 华 大 学 出 9787302280293 法教程实验和 精品课程建设 版社 2012-10-01 课程设计 立项项目 教材配套的教学网站: http://teachhelp.changeip.net:9988/ (计划逐步建立自己的教学资料网,包含课件、实验素材、 答案、常用数据结构函数库以及实践项目的相关资料。 ) 参考书目: 《2014 年考研计算机统考大纲-数据结构》 《数据结构(C 语言版)》 ,严蔚敏,清华大学出版社。 笔试 机试 平时成绩 10% 成绩评定方法 实验成绩 50% 期末成绩 40%
第8章 查找 (6 学时)
5.散列查找。 重点: 顺序查找、二分查找、分块查找、二叉排序 树查找的基本思想和算法;散列法基本思想、散 列函数的常用构造方法;哈希表的查找算法及分 析。 难点: 二叉排序树、平衡二叉树、B-树 以及 B+树 各自的思想、算法、性能分析。 基本内容: 1.排序的基本概念; 2.插入排序(直接插入排序、折半插入排 序、希尔排序) ;
(10 学时) 重点: 二叉树的顺序、链式存储结构;树的链式存 储结构的 3 种表示法;二叉树的遍历次序及算法 (递归与非递归) ;赫夫曼树(最优二叉树)和 赫夫曼编码的存储表示。 难点: 二叉树的 5 条性质;先、中、后序遍历二叉 树的非递归算法;赫夫曼编码的算法。 第7章 图 基本内容: 1.图的定义和术语;
第2章 教学内容 ( 72 学时) 线性表 (8 学时)
第3章 栈和队列 (6 学时)
第4章 串 (4 学时)
基本内容: 1. 串的概念及其运算; 2. 串的存储结构;
2
华南师范大学软件学院
3. 串的实际应用(字符及子串的查找和匹 配) 。 重点: 顺序存储结构下串连接、求子串操作的算 法;堆分配存储结构下生成串、求串长、串比较、 清空串、串连接、求子串、插入等操作的算法。 难点: 串的模式匹配 KMP 算法。 基本内容: 1.数组的定义、基本运算和存储结构 ; 2.特殊矩阵的压缩存储 ; 3.广义表的定义、术语、存储结构、运算; 4.递归算法设计。 数组和广义 重点: 表 数组各种基本操作的算法;稀疏矩阵的三元 (6 学时) 组顺序表压缩存储方法;广义表的链表存储结构 及基本操作。 难点: 矩阵的压缩存储;稀疏矩阵的行逻辑链接的 顺序表及十字链表压缩存储方法。 基本内容: 1.树的定义和表示; 2.二叉树的定义、重要性质、存储结构和 运算; 3.二叉树的遍历、线索、排序; 4.二叉树与树和森林的转换; 第6章 树 5.树的应用(二叉排序树、哈夫曼树及其 应用) 。 第5章
课程资源
考核方式
作品 其他 开卷 闭卷
软硬件要求
教室和机房需要安装 Visual C++ 6.0
1
华南师范大学软件学院
章节
教学内容 (包括基本内容、 重点难点、 学时分配) 基本内容: 1.数据结构的基本概念(数据、数据元素、 数据类型和数据结构、逻辑结构、存储结构) ;
第1章 绪论 (2 学时)
是否双语教学 是否考研课程 学时 108
是 是 周学时
否 否 4+2=6
上机实验 36
项目实践 0
课程描述
数据结构是计算机专业和软件工程专业中一门重要的专 业基础课程。在计算机软件的各个领域中均会使用到数据结构 的有关知识。当用计算机来解决实际问题时,就要涉及到数据 的表示及数据的处理,而数据表示及数据处理正是数据结构课 程的主要研究对象,通过这两方面内容的学习,是学习后续课 程《数据库系统》 、 《操作系统》 、 《编译原理》等计算机专业课 程的必备条件, 同时为后续的软件课程打下厚实的基础。 因此, 数据结构课程在计算机应用专业中具有举足轻重的作用。 本课程的任务是:在基础方面,要求学生掌握常用数据结 构的基本概念及其不同的实现方法;在技能方面,通过系统学 习能够在不同存储结构上实现不同的运算,并对算法设计的方 式和技巧有所体会。使学生较全面的掌握各种常用的数据结 构,提高运用数据结构解决实际问题的能力。
全日制本科教学大纲
教 学 单 位 课 程 名 称 课 程 编 号 学 时 108 软件学院 数据结构与算法(C++描述) 20H582a3 学 分 软件工程 潘家辉 杨 滨 5
适 用 专 业 主 讲 教 师 教 学 伙 伴
2013 年 9 月
华南师范大学软件学院
课程类别 开课学期 学分 学时分配
核心课程 第 3 学期 5 课堂教学 72
第9章 排序 (8 学时)
3.交换排序(冒泡排序、快速排序) ; 4.选择排序(简单选择排序、堆排序) ; 5.各种排序方法比较。 重点: 各种内部排序方法的基本思想和特点;各种 排序方法的优缺点、时、空性能和适用场合;插 入排序、交换排序的实现。
4
华南师范大学软件学院
难点: 3 种选择排序的思想、算法、性能分析;归 并排序的思想、算法、性能分析。 基本内容: 1. 文件的基本概念; 2. 顺序文件; 3. 索引文件; 第 10 章 文件 (4 学时) 4. 索引顺序文件; 5. 散列文件; 6. 多关键字文件。 重点: 文件的概念,索引文件的理解, B+树与 B树的差异。 难点:无 基本内容: 1. 递归算法; 2. 分治算法; 3. 动态规划算法; 第 11 章 算法设计与 分析 (8 学时) 4. 算法分析; 5. 可计算性问题; 6. 实例研究。 重点: 讨论了算法设计技巧,并在研究算法的性 能、效率以及对运行时间分析的基础上理解了一 些高级数据结构。 难点: 递归算法与分治算法的实现。 基本内容: 复习 (4 学时) 《数据结构与算法》的课程总结与重点回 顾。 重点:无 难点:无 实验 实验内容 ( 36 学时) 第1章 绪论 (2 学时) 实验内容(包括实验目标、任务以及学时分配) 实验目标: 理解抽象数据类型 ADT 的基本概念,学会运 用 C++的类设计实现 ADT 的应用。
2.算法描述和算法评价。 重点: 四种逻辑结构。 难点: 掌握算法复杂度的概念及分析方法(时间与 空间)。 基本内容: 1.线性表的概念及运算; 2.顺序表及基本运算; 3.单链表及基本运算; 4.循环链表和双链表; 5.顺序存储结构与链式存储结构的比较。 重点: 对线性表做插入、删除等操作的算法;单链 表和循环链表的结构特点与基本运算。 难点: 线性表的顺序表示和实现; 线性表的链式表 示和实现。 基本内容: 1.栈和队列的概念及运算; 2.栈和队列的顺序、链接存储; 3.栈和队列的插入、删除算法及其应用。 重点: 栈的顺序存储结构的表示与实现;链队列存 储结构(链式)的表示;构造、销毁链队列以及 插入、删除元素的算法。 难点: 循环队列(队列的顺序表示和实现)。
5
华南师范大学软件学院
实验任务: 1. 计算任意位数的∏. 2. 定义复数的类,在复数加法的基础上, 在类中增加减法、乘法操作。在主程序 中,正确定义对象,输入数据,调用各 种操作。调试运行程序。 实验目标: 了解和熟悉链表存储结构,它是本课程链表 存储表示的基础。认识到链表存储结构可用于线 性表、串以及稀疏矩阵。掌握在链表存储结构前 提下的各种主要运算。 实验任务: 1. 一元多项式的表示。 2. 不带头结点形式的单链表。 实验目标: 第3章 栈和队列 (4 学时) 使学生深入了解栈和队列的特征,掌握在实 际问题背景下的灵活运用。 实验任务: 1. 表达式求值。 2. 编写一个程序,反映病人到医院看病,排 队看医生的情况。 实验目标: 第4章 串 (2 学时) 掌握字符串作为输入输出常量的使用及编 程方法。 实验任务: 1.设计一个微型文本编辑程序。 2.字符串操作,根据字母映射表进行加密。 实验目标: 了解和熟悉以数组作为顺序存储结构,它是 第5章 本课程顺序存储表示的基础。认识到顺序存储结 数组和广义 构可用于线性表、串以及稀疏矩阵。掌握在顺序 存储结构前提下的各种主要运算。 表 (2 学时) 实验任务: 1. 5X5 阶螺旋方阵。 2. m 元多项式的表示。 第6章 树 (4 学时) 实验目标: 通过本实验使学生深刻理解二叉树的性质 和存储结构,熟练掌握二叉树的遍历算法。认识
6
第2章 线性表 (4 学时)
华南师范大学软件学院
哈夫曼树、哈夫曼编码的作用和意义。 实验任务: 1. 树与等价关系的应用问题。 2. 编写一个程序,用二叉树表示算术表达 式。 3. 改进课本提出的哈夫曼树类,通过指向函 数指针作为参数实现字符位置的查找。 实验目标: 理解图的基本概念,两种主要的存储结构。 掌握在邻接链表存储结构下的图的深度优先递 归遍历、广度优先遍历。 实验任务: 1. 周游世界(哈密尔顿圈)问题。 2. 改进课本实现的求最小生成树的 Kruskal 算法。 实验目标: 第8章 查找 (2 学时) 了解静态查找、动态查找和哈希(散列)搜 索表的基本方法。 实验任务: 1. 查找 3 个数组的最小共同元素。 2. 试编程判断一个二叉排序树是否为平衡 二叉树。 实验目标: 理解各种排序方法的基本思想及其特点,熟 悉各种排序方法的排序过程。通过实验对各种内 部方法的时间复杂度建立。 实验任务: 1.统计宴会中来宾数目的最大值。 2.各种排序算法运行时间的测试。 3. 以带头结点的单链表为存储结构实现简单 选择排序。 实验目标: 第 10 章 文件 (2 学时) 介绍基于磁盘文件的应用开发,理解与算法 和数据结构设计有关的基础知识。 实验任务: 1.编写一个程序,实现文件(主文件和索引 文件)访问。