1、五邑大学信息学院数据结构教案20072008 年度 第二学期课 程 名 称 数据结构课 程 主 讲 人 白明、金旺春课程所属教研室 软件工程、计算机科学与技术课程类型及学时 理论课(含实验)、72 学时授课教材版本 数据结构(C+版)清华大学出版社授 课 班 级 计算机科学与技术 2006 级 1 班、2 班 网络工程 2006 级 1 班 软件工程 2006 级 1 班 授 课 日 期 2008 年 3 月7 月五邑大学信息学院 制二七年一月信息学院课程教案1教学专题开课 1-1教学专题 开课课程综述 授课学时 1 学时(50 分钟)教学章节 组织 授课对象 计算机学科各专业本科生教学类型
2、理论课 授课形式 课堂讲授教学重点 为什么要学习数据结构这门课以及如何学习教学难点 认识课程,找到学好课程的方法课程引入:介绍数据结构课程在教学计划中的位置 5 分钟1( 课程性质:核心地位2( 课程学习目标(1( 学习知识角度(2( 培养能力角度3( 介绍教材:主教材和与之配套的辅助教材4( 介绍参考文献资料:多角度、全方位学 习5( 介绍网络教学资源:6( 学习方法及要求(1( 坚持上课(2( 学会读书:预习+复习+拓展(3( 认真作业和实验(4( 下载课件、演示系统,提高记忆效率(5( 理解知识+自主实践7考核要求:作业+考勤+ 实验+自主实践(期中考核)+期末考试5 分钟15 分钟3
3、分钟3 分钟5 分钟10 分钟2 分钟教学内容和教学过程课程总结:下定决心、树立信心、坚持恒心、改革创新 2 分钟教学提示1开课要精彩,激发兴趣,认识重要性2明确课程目标:学些什么,达到的目标3需要具备的基本知识,对基础差的同学多鼓励从现在做起 =追赶超出4为什么学,怎样学,如何学好5考研思考题课后导读你对你所学的专业了解多少?你对学习这门课应该如何准备?在数据结构方面,最早的权威性著作是 Knuth 所著的系列 丛书计算机程序设计艺术,这套书非常值得一看教学后记信息学院课程教案2教学专题数据结构的研究对象 1-2教学专题 数据结构的兴起和发展 授课学时 1 学时(50 分钟)教学章节 11
4、、12 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 抽象与数据类型;数据结构的研究对象教学难点 数据结构与类的对应关系学习要求知识点了解 理解 掌握 熟练掌握程序设计的性质 数据结构的起源和发展 数据结构与程序设计的关系 计算机求解问题的一般过程 教学内容和教学目标数据结构的研究对象 课程引入:介绍数据结构课程体系的起源。了解 历史专业 素养 3 分钟1( 提出问题:程序设计的实质是什么?通过具体实例得出答案2( 介绍数据结构与程序设计的关系, 强调数据结构始终是程序设计的基础,强调从面向对象角度看待数据 结构3( 从发展的观点和应用的观点讨论数据结构的发展4
5、( 从计算机求解问题的一般过程入手,建立抽象和数据模型的初步概念5( 通过具体实例总结数据结构的研究对象,注意引申数据元素之间的关系3 分钟5 分钟12 分钟3 分钟15 分钟10 分钟教学过程课程总结:数据结构研究的对象是非数值计算问题 2 分钟教学提示1从问题求解过程入手,理解“数据结构+算法=程序”,理解数据结构和算法在问题求解中的作用2通过结构化程序和面向对象程序 对比,从框架上理解 为 什么将数据结构从结构化发展到面向对象3数据结构是从非数值问题抽象出来的数据模型,这个阶 段的学生还没有抽象和模型的概念,需要补充抽象和模型的相关知 识媒体使用 多媒体课件:Kunth 的照片及介绍;用
6、动画辅助解释基本概念信息学院课程教案3教学网络平台:相关教学材料思考题课后导读在数据结构方面,最早的权威性著作是 Knuth 所著的系列 丛书计算机程序设计艺术,这套书非常值得一看许多人致力于计算机科学中的问题求解, 实际上这正是该领 域吸引人的地方。 如何求解问题(曹宏庆.中国水电出版社)是提高问题求解能力的经典著作教学后记教学专题数据结构的基本概念 2-30教学专题 数据结构的基本概念 授课学时 1.4 学时(70 分钟)教学章节 1.3 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 数据结构及相关概念;数据的逻辑结构和存储结构之间的关系教学难点 数据元素;
7、逻辑关系;抽象数据类型学习要求知识点了解 理解 掌握 熟练掌握数据、数据项、数据对象 数据元素 数据结构 数据的逻辑结构 数据的存储结构 逻辑结构和存储结构之间的关系 数据结构的访问接口 教学内容和教学目标抽象数据类型 教学过程 课程引入:根据生活中的实例简单理解什么是数据结构 3 分钟信息学院课程教案41( 给出数据的定义,举例说 明什么是数据2( 给出数据元素和数据项的定义,根据上一 讲得个例子体会如何界定数据元素,总结数据、数据元素、数据项之间的关系3( 给出数据结构的定义,从 问题求解的角度强调数据结构包含 逻辑结构和存储结构两个方面4( 给出逻辑结构的定义重点解释逻辑关系5( 给出存
8、储结构的定义,重点 强调如何表示逻辑关系6( 从数据表示的角度总结逻辑结构和存储结构的关系7( 在理解数据类型抽象的基础上, 给出抽象数据类型的定 义, 说明:数据模型+一组操作=ADT8( 结合抽象数据类型的定义说明数据结构的访问接口5 分钟8 分钟6 分钟10 分钟15 分钟5 分钟10 分钟5 分钟课程总结:数据的逻辑结构、存 储结构及其相互关系 3 分钟教学提示1注意对基本概念的引入和阐 述,抓住要点,注意用生活中的 实例进行类比逻辑2关系较抽象、较难理解,通过实例在具体数据模型中理解逻辑关系3抽象数据类型是贯穿课程始 终的概念,不要求学生开始就深刻理解,在后 续的课程中反复应用抽象数
9、据类型的三个视图同心圆式的教学方法媒体使用多媒体课件:用动画实现存储结构;用动画辅助解释基本概念教学网络平台:相关教学材料思考题课后导读美William Ford, William Topp 著,刘卫东,沈官林译,数据结构 C+语言描述,清华大学出版社,第 3 章抽象数据类型和类和第 7 章形式数据类型教学后记教学专题算法的基本概念 3-1+30教学专题 算法的基本概念 授课学时 1.6 学时(80 分钟)教学章节 1.3 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 算法的定义及特性;伪代码描述算法教学难点 算法的特性;伪代码描述算法教学内容 知识点 学习要求
10、信息学院课程教案5了解 理解 掌握 熟练掌握算法及算法的特性 算法和程序的关系 算法的描述方法自然语言 算法的描述方法程序流程图 算法的描述方法程序设计语言 算法的描述方法伪代码 和教学目标用 C+语言中的函数描述算法 课程引入:根据生活中的实例简单理解什么是算法 5 分钟1给出算法的定义,从使用的角度讲解算法的特性2提出问题:算法=程序?指出程序 设计的核心是算法3分别用自然语言、程序设计流程图和 C+语言举例描述算法,从应用角度介绍优点、缺点、使用方法、注意事项4综合自然语言、程序设计流程图和 C+语言描述算法的优缺点,给出伪代码描述,反映伪代码描述的 优势5介绍用 C+语言中的函数描述算
11、法,强调用伪代码和 C+描述算法是两种抽象级别,体现了抽象分 级的思想6课堂练习用伪代码描述算法10 分钟5 分钟20 分钟12 分钟15 分钟8 分钟教学过程课程总结:算法的定义和描述方法;算法与程序的关系 5 分钟教学提示1算法特性要讲清楚透彻,从应用的角度讲解每一个特性的含 义,其用途在于判断一个算法在形式上是否正确2伪代码描述算法比较灵活,但掌握存在难度,应先从框架上理解,再通过事例掌握基本方法3强调算法的作用,是不能直接执行的媒体使用多媒体课件:用动画辅助解释基本概念教学网络平台:相关教学材料思考题课后导读计算与算法导论章小莉等译,电子工业出版社。关于如何设计一个好的算法请阅读第 2
12、 章和第 8 章教学后记信息学院课程教案6教学专题算法及算法分析 3-2教学专题 算法及算法分析 授课学时 1 学时(50 分钟)教学章节 14 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 用大 O 记号表示算法的时间教学难点 算法分析的方法;用大 O 记号表示算法的时间性能学习要求知识点了解 理解 掌握 熟练掌握度量算法效率的方法事后度量 度量算法效率的方法事前估算 算法分析的目的 问题规模、基本语句 大 O 记号 估算算法时间复杂度的基本方法 教学内容和教学目标最好、最坏、平均情况时间性能 课程引入:通过复习数据结构和算法的基本概念引出本讲内容 5 分钟1
13、提出问题:什么是算法分析? 为什么要进行算法分析?指出算法分析的目的决定了算法分析的方法2给出事后度量方法并指出该 方法的局限性,引出事前估算的度量方法3根据一个算法实例给出算法分析的方法4给出问题规模和基本语句概念,从不同角度讲解大 O记号5结合顺序查找算法,分析最好、最坏、平均情况的 时间性能6说明空间复杂度的分析方法5 分钟3 分钟15 分钟10 分钟5 分钟5 分钟教学过程课程总结:算法分析的事前估算方法;用大 O记号表示算法的时间性能 2 分钟教学提示1注意讲授算法分析过程中的思 维变换2深刻理解大 O记号的含义媒体使用多媒体课件:用动画给出算法分析方法的过程;再用板书总结教学网络平
14、台:相关教学材料思考题课后导读算法分析导论冯舜玺译,机械工 业出版社。关于算法分析较深入的讨论见第 1 章算法分析概述教学后记信息学院课程教案7信息学院课程教案8教学专题线性表(一) 4教学专题1线性表的逻辑结构2线性表的顺序存储结构授课学时 2 学时(100 分钟)教学章节 21、22 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 线性表的定义;线性表的逻辑特征;顺序表的存储特点;顺序表的基本操作教学难点 线性表的抽象数据类型定义;用伪代码描述算法,描述顺序表的基本操作学习要求知识点了解 理解 掌握 熟练掌握线性表的定义 线性表的逻辑特征 线性表的抽象数据类型
15、定义 线性表的基本操作 顺序表的存储特点 顺序表类 顺序表的基本操作 顺序表的插入、删除操作的时间性能 教学内容和教学目标顺序表的优缺点 课程引入:通过几个二维表的实例 3 分钟1给出线性表的定义,总结线性表的逻辑特性2复习 ADT 的三个视图(定义视图、 设计视图、实现视图)3给出线性表的抽象数据类型定 义4给出顺序表的存储示意图,总结存储特点5复习存储地址的有关内容,给出顺序表的随机存取特性6顺序表类的声明、构造函数、析构函数7给出顺序表插入操作的执行 过程,写出 伪代码,再写出 C+描述8分析插入算法的时间性能,总结算法分析的一般步骤9对于顺序表的删除操作,给出必要的提示,要求学生自行完
16、成10给出顺序表的查找操作的 执行过程和算法11总结顺序表的优缺点10 分钟5 分钟7 分钟10 分钟10 分钟15 分钟15 分钟5 分钟3 分钟7 分钟5 分钟教学过程课程总结:线性表的逻辑结构;顺序表的存储特点和基本操作 5 分钟教学提示1线性表的定义要讲清楚透彻 ,向学生渗透一种理解概念的方法问题分析、抓住要点、引申理解信息学院课程教案92通过线性表抽象数据类型进 一步理解抽象数据类型的三个 视图,理解模 块化思想,掌握其使用方法3从实用角度出发复习 C+语言相关知识4对于顺序表的基本操作算法,要讲思路、讲方法、讲过程,注意培养抽象思维能力和逻辑思维能力。媒体使用多媒体课件:用动画辅助
17、解释基本概念和模拟顺序表类的基本操作的执行过程教学网络平台:相关教学材料思考题课后导读数据结构(C 语言版)严蔚敏 编著,清 华大学出版社。参阅相关章节:关于线性表的定义采用二元组的形式数据结构与算法齐德昱编著,清 华大学出版社。参 阅相关章 节:注意顺序表的实现与本教材不同教学后记教学专题线性表(二) 5教学专题 线性表的链接存储结构及实现 授课学时 2 学时(100 分钟)教学章节 23、24 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 单链表的存储特点;单链表的基本操作的算法及时间性能教学难点 单链表查找、插入和删除算法学习要求知识点了解 理解 掌握 熟
18、练掌握单链表的存储要点及存储特点 单链表类 单链表的顺序存取特性 单链表的插入、删除操作 单链表插入、删除操作的时间性能 单链表类的构造函数和析构函数 教学内容和教学目标顺序表和单链表的比较 教学过程 课程引入:通过分析顺序表的缺点引出链接存储结构 5 分钟信息学院课程教案101根据一个实例给出线性表链 接存储的实际内存状态,复习 C+语言中指针的相关知识,抽象出单链 表的存储结构示意图2区分指针变量和结点变量,说明头指针、头结点和尾指针3给出单链表类的声明,引申单链表类与顺序表类的关系4给出单链表查找的算法,总结单链表算法的设计模式5设计单链表的插入算法,分析时间性能6比较带头结点和不带头结
19、点的 单链表上的插入操作7设计单链表的删除算法,注意分析边界情况8对单链表类的构造函数,给出头插法和尾插法的算法9对单链表类的析构函数,给出必要的提示,要求学生自行完成20 分钟10 分钟5 分钟10 分钟15 分钟10 分钟5 分钟12 分钟3 分钟课程总结:将顺序表和单链表进行比较,总结并比较存储结 构及实现方 法5 分钟教学提示1熟练使用指针是学好单链表的基本前提2单链表算法设计的关键是多 练,安排一 节习题课是非常必要的,如果学时较紧,至少通过课堂对相关作业进行点评媒体使用多媒体课件:用动画模拟单链表各种操作的执行过程教学网络平台:相关教学材料思考题课后导读数据结构与算法齐德昱编著,清
20、 华大学出版社。参 阅相关章 节:注意单链表表的实现与本教材不同教学后记教学专题线性表(三) 6教学专题1线性表的其它存储方法2线性表的应用举例授课学时 2 学时(100 分钟)教学章节 25 及课后思考题和习题 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 循环链表、双链表 教学难点 双链表的基本操作学习要求知识点了解 理解 掌握 熟练掌握循环链表的存储结构 教学内容和教学目标循环链表的操作 信息学院课程教案11双链表的存储结构 双链表的基本操作 静态链表的存储结构 静态链表的操作 间接寻址存储结构 约瑟夫环问题描述 设计算法求解约瑟夫环问题 课程引入:通过提
21、出问题:在单链表中如何查找某结点的前驱? 2 分钟1将循环链表的插入算法与单链 表的插入算法进行比较2在有头结点的循环链表中,如何查找第 1 个结点和最后 1 个结点,引出带尾指针的循环链表3如何更快速得到某结点的前 驱(空间换时间),引出双 链 表4通过图示理解双链表的插入和 删除操作, 给出算法5如何通过连续存储实现连接关系,引出静态链表6通过图示理解静态链表的插入和 删除操作过程7提出问题:将数组和指针结 合起来存储线性表会怎样?引出 间接寻址8通过图示理解间接存储结构上如何 实现插入和删除操作,并与顺序表进行比较9给出约瑟夫环问题的描述,介绍该问题的起源10从逻辑上理解约瑟夫环问题 的
22、求解过程11分别用顺序存储结构和单链 表存储结构实现约瑟夫环问题12其它问题或习题举例8 分钟5 分钟5 分钟10 分钟5 分钟15 分钟5 分钟5 分钟5 分钟5 分钟20 分钟 5 分钟教学过程课程总结:线性表的各种逻辑结构;线性表的存储特点和基本操作 5 分钟教学提示1循环链表和双链表是单链表的 变形2静态链表和间接寻址是顺序存 储和连接存储相结合的产 物3重点在于灵活设计各种存储结 构的思想4通过例题检验学生掌握线性表及其存 储结构的教学效果。媒体使用多媒体课件:用动画模拟算法和示例的执行过程,用 动画 辅助解释基本概念教学网络平台:相关教学材料思考题课后导读数据结构C+实现穆淮扣等编
23、著,科学出版社。参 阅相关章节:关于双链表的实现上网查找约瑟夫环及其变形问题的解决方法,完成关于 该问题 的课程作业教学后记信息学院课程教案12教学专题栈 7教学专题 栈 授课学时 2 学时(100 分钟)教学章节 31、341 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 栈的操作特性、顺序栈及实现、链栈及实现教学难点 两栈共享空间学习要求知识点了解 理解 掌握 熟练掌握栈的定义及操作特性 栈的抽象数据类型定义 顺序栈及实现 两栈共享空间 链栈及实现 顺序栈和链栈的比较 教学内容和教学目标顺序栈应用举例 课程引入:通过复习线性表的插入和删除操作引出栈 5 分钟
24、1给出栈的定义,通过实例说明栈的操作特性2根据顺序栈存储示意图给出入 栈和出栈算法,分析 时间 性能。总结:顺序栈算法是顺序表算法的简化3如何提高栈空间的利用率?引出两 栈共享空间算法4复习单链表,如何改造成链栈?5根据链栈存储示意图给出入 栈和出栈算法,分析 时间性能。总结:链栈算法是单链表算法的简化6回顾顺序表和单链表的比较 方法,引 导学生得出顺序栈 和链栈的比较结果7给出递归的定义,结合具体实例说明递归是一种描述问题 和解决问题的基本方法8递归问题举例9给出描述递归函数运行轨迹的 图示方法, 强调递归的层 次10总结递归函数,强调注意事项10 分钟15 分钟25 分钟2 分钟15 分钟
25、3 分钟5 分钟5 分钟5 分钟5 分钟教学过程课程总结:栈的操作特性;栈的基本操作和栈的应用 5 分钟教学提示 1栈是计算机技术及程序设计 中常用的数据结构之一,熟练掌握对后续学习有益信息学院课程教案132根据生活实例深刻理解栈的操作特性,并与线性表进行比 较3从实用角度出发复习 C+语言递归知识4通过递归函数的运行轨迹,引导学生理解递归的调用层 次以及实参和形参的结合方法,及程序运行过程中工作 栈的变化 媒体使用多媒体课件:用动画辅助解释基本概念和模拟各操作的执行过程教学网络平台:相关教学材料思考题课后导读数据结构与算法齐德昱编著,清 华大学出版社。参 阅相关章 节:注意用抽象类和继承类实
26、现栈数据结构刘大友等编著,高等教育出版社,相关章节对递归和汉诺塔问题进行了较深入的介绍教学后记教学专题队列 8教学专题 队列 授课学时 2 学时(100 分钟)教学章节 32、342 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 队列的操作特性、循环队列及实现、链队列及实现教学难点 循环队列的存储方法及队空和队满的判断学习要求知识点了解 理解 掌握 熟练掌握队列的定义及操作特性 队列的抽象数据类型定义 顺序队列的假溢出现象 循环队列及实现 链队列及实现 循环队列和链队列的比较 教学内容和教学目标队列的应用举例 教学过程 课程引入:通过复习线性表和栈的插入、 删除
27、操作引出栈 5 分钟信息学院课程教案141给出队列的定义,通过实例说明队列的操作特性2如何存储?引出队列的顺序存 储和链接存储3假溢出问题?改造顺序表,得出循环队列的存储方法4如何判断队空和队满?分析各种解决方案5如何改造单链表实现队列的 链接存储6链式队列的出队算法需注意 边界情况(判断队空)7引导学生比较循环队列和链 式队列8队列问题应用举例10 分钟5 分钟25 分钟15 分钟10 分钟15 分钟5 分钟5 分钟课程总结:队列的操作特性;队列的基本操作和队列的应用 5 分钟教学提示1队列是程序设计中常用的数据 结构之一,熟 练掌握对后 续学习有益2根据生活实例深刻理解队列的操作特性,并与
28、线性表和 栈进行比较3通过循环队列的引入过程启 发学生的逻辑思维能力 媒体使用多媒体课件:用动画辅助解释基本概念和模拟各操作的执行过程教学网络平台:相关教学材料思考题课后导读数据结构与算法齐德昱编著,清 华大学出版社。参 阅相关章 节:注意用抽象类和继承类实现队列教学后记教学专题串 9教学专题 串 授课学时 2 学时(100 分钟)教学章节 33、343 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 串的定义及基本操作、BF 算法、KMP 算法教学难点 模式匹配算法学习要求知识点了解 理解 掌握 熟练掌握串的定义及基本概念 串的抽象数据类型定义 串的基本操作 串
29、的存储结构 BF 算法 KMP 算法 教学内容和教学目标求匹配失效数组 next 信息学院课程教案15课程引入:通过给出串的定义,并与 线性表进行比较 5 分钟1介绍串的基本概念,补充字符集的相关知识2给出串的 ADT 定义,分析串的基本操作和特点3如何改造顺序表,实现串的顺序存储,并引出串的压缩和非压缩存储4如何改造链表,实现串的链接存储,分析各种解决方案5给出 BF 算法的基本思想,运行实例和 BF 算法6分析 BF 算法效率低的原因,引出 KMP 算法 7根据部分匹配特征,给出失效数组 next 的求解方法8给出 KMP 算法,简单分析 KMP 算法的时间性能10 分钟5 分钟10 分钟
30、5 分钟20 分钟10 分钟25 分钟5 分钟教学过程课程总结:串的特性;模式匹配算法 5 分钟教学提示1由于学时原因,本专题只要求理解,但需强调串的基本操作2KMP 算法的技巧性很 强,需要注意讲授方法媒体使用多媒体课件:用动画模拟各算法的动态执行过程教学网络平台:相关教学材料思考题课后导读算法设计与分析王红梅编著,清 华大学出版社。参 阅相关章 节:注意 KMP 算法的技巧性教学后记教学专题数组及矩阵的压缩存储 10+25教学专题 数组及矩阵的压缩存储 授课学时 25 学时(125 分钟)教学章节 41、42 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 二
31、维数组的寻址方法、对称矩阵的寻址方法、稀疏矩阵的压缩存储方法教学难点 数组的存储与寻址、稀疏矩阵压缩存储后转置操作的实现学习要求知识点了解 理解 掌握 熟练掌握数组的抽象数据类型定义 二维数组的存储方法及寻址 矩阵压缩存储的基本思想 特殊矩阵和稀疏矩阵的概念 特殊矩阵压缩存储及寻址 稀疏矩阵的三元组顺序表 教学内容和教学目标稀疏矩阵的转置运算 信息学院课程教案16课程引入:通过复习 C+语言的数组定义,并与线性表进行比较 3 分钟1给出数组的基本操作和 ADT 定义2复习顺序表和链表的优缺点,得出数组的顺序存储结构3画出行优先存储二维数组的示意 图, 给出存储方法与寻 址方法4引导学生仿照行优
32、先,画出列优先存储二维数组的示意 图,给出存储方法与寻址方法,并引申出 n 维(n2)数组的存储方法5从矩阵的应用背景出发,给出矩阵压缩存储的基本思想6根据对称矩阵的特点给出压缩 存储方法和寻址方法7根据三角矩阵的特点给出压缩 存储方法和寻址方法8给出稀疏矩阵的三元组表的存 储方法9根据实例画出三元组顺序表的存 储示意图,定 义存储结 构10根据稀疏矩阵转置算法 I 的基本思想运行实例,写出算法11分析转置算法 I 的缺点,引出 转置算法 II ,运行实例,根据算法的执行过程,涉及辅助数据结构,写出转置算法 II。12由三元组顺序表的缺点引出十字 链表,划出存 储示意图5 分钟3 分钟10 分
33、钟7 分钟5 分钟15 分钟5 分钟6 分钟6 分钟20 分钟30 分钟5 分钟教学过程课程总结:数组的寻址方法;特殊矩阵的存储与寻址方法 5 分钟教学提示1深入剖析二维数组的内部实现 ,从根本上理解数 组的寻 址方法2对于特殊矩阵压缩后的寻址,重点讲方法,灵活掌握存储结构的设计方法3稀疏矩阵压缩存储后转置算法的 讲授思路:给出基本思想 运行实例伪代码描述C+描述,重点讲设计过 程 媒体使用多媒体课件:用动画模拟稀疏矩阵转置算法的执行过程教学网络平台:相关教学材料思考题课后导读数据结构与算法许卓群编著,高等教育出版社。参阅相关章节:包含更复杂的稀疏矩阵十字链表类的定义和实现教学后记教学专题广义
34、表及数组应用举例 11-25教学专题 广义表及数组应用举例 授课学时 15 学时(75 分钟)教学章节 43、44 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 广义表的定义及基本概念、广义表的存储方法教学难点 广义表的存储结构、广义表及本操作的实现信息学院课程教案17学习要求知识点了解 理解 掌握 熟练掌握广义表的定义及基本概念 广义表的抽象数据类型定义 广义表的存储结构 广义表基本操作的实现 教学内容和教学目标数组应用举例 课程引入:通过给出广义表的定义,将其与 线性表进行比较 3 分钟1通过给出几个广义的例子,给出广义表的 ADT 定义2提问题:广义表可以
35、顺序存 储吗?采用链接存储结构结 点能统一吗?引出头尾表示法3画出头尾表示法存储示意图 ,分析其 优缺点4结合存储示意图,给出基本操作的实现5数组应用举例5 分钟5 分钟10 分钟18 分钟30 分钟教学过程课程总结:广义表的逻辑结构、存 储结构及实现 4 分钟教学提示1注意概念讲授的准确性2应遵循链接存储的基本思想 讲解广义表的存储结构3通过例子讲解数组的正确运用 媒体使用多媒体课件:用动画辅助解释基本概念,展示广 义表的存 储结构教学网络平台:相关教学材料思考题课后导读数据结构与算法许卓群编著,高等教育出版社。参阅相关章节:包含广义表的其他存储方法和广义表的遍历算法教学后记教学专题树的逻辑
36、结构和存储结构 12教学专题 树的逻辑结构和存储结构 授课学时 2 学时(100 分钟)教学章节 51、52 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 树的定义和基本术语、树的遍历操作、树的存储表示法教学难点 树的遍历操作、树的孩子链表示法教学内容 知识点 学习要求信息学院课程教案18了解 理解 掌握 熟练掌握树的定义 树的基本术语 树的抽象数据类型定义 树的遍历操作 树的双亲表示法 树的孩子链表示法 和教学目标树的孩子兄弟表示法 课程引入:举例现实中的非线性问题有些是树形结构,如何解决? 3 分钟1给出树的定义,在与线性表定义比较的基础上,注重理解树的逻辑
37、特征2结合实例分类讲授树的基本 术语3理解什么是遍历,重点讲清访问的含义和遍历次序4由树的组成得到前序和后序遍 历,由 树的层次特征得到 层序遍历5树的遍历操作定义采用递归 方法,( 树结构本身具有递归 特性),相应问题的求解也常用递归方法6结合树的实例练习各种遍历 方法7从如何表示树的逻辑关系引出 树的存储结构8从双亲角度考虑分析结点间 的逻辑关系,画出双 亲存储 示意图9从孩子角度考虑给出多重链 表解决方案,分析缺点及原因,引出孩子链表表示法,分析结点间的逻辑 关系10将双亲表示和孩子表示结 合,形成双 亲孩子表示法11观察任意一棵树,某结点的第 1 个孩子和右兄弟都具有惟一性,引出孩子兄
38、弟表示法12根据实例画出孩子兄弟存 储示意图,分析 结点间的逻辑 关系5 分钟25 分钟4 分钟2 分钟8 分钟3 分钟5 分钟10 分钟15 分钟2 分钟3 分钟10 分钟教学过程课程总结:树的逻辑结构;树的存储结构 5 分钟教学提示1介绍树结构在计算机软件系 统中的应用2从逻辑上理解遍历操作的执 行过程,再探 讨基于存储结 构的实现3注意树的各种存储结构中体 现的结点间的逻辑关系 媒体使用多媒体课件:用动画模拟树的遍历过程,展示 树的存储过 程, 辅助解释树的基本术语和基本方法教学网络平台:相关教学材料思考题课后导读数据结构与算法许卓群编著,高等教育出版社。参阅相关章节:给出了树遍历操作的
39、具体实现及树的其它存储方法计算机程序设计艺术Knuth 著 第 4 卷第 4 册,生成所有可能的树教学后记信息学院课程教案19教学专题二叉树的逻辑结构 13教学专题 二叉树的逻辑结构 授课学时 2 学时(100 分钟)教学章节 53 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 二叉树的定义、二叉树的性质、二叉树的遍历操作教学难点 二叉树性质的证明、二叉树的遍历操作学习要求知识点了解 理解 掌握 熟练掌握二叉树的定义 二叉树的基本形态 几种特殊的二叉树 二叉树的性质 二叉树的抽象数据类型定义 教学内容和教学目标二叉树的遍历操作 课程引入:通过分析一般树的存储问题
40、,提出二叉 树 3 分钟1给出二叉树的定义,注重强调二叉树和树是两种不同的 树结构2根据二叉树的定义得出二叉 树的基本形态3给出斜树、满二叉树、完全二叉树的定义, 说明其特点4给出并证明二叉树的性质5给出二叉树的 ADT 定义6复习树的遍历,给出遍历二叉树的定义7由二叉树的组成得到前、中、后三种遍历次序,由 树的层次特征得到层序遍历8给出遍历次序的操作定义9已知一棵二叉树的前序序列和中序序列,如何构造惟一一棵二叉树?给出构造过程5 分钟5 分钟15 分钟25 分钟5 分钟5 分钟7 分钟15 分钟10 分钟教学过程课程总结:二叉树的性质;二叉树的遍历 5 分钟教学提示1强调二叉树不是树的特例,
41、二叉树和树是两种不同的树结 构2基于二叉链表的二叉树的遍 历的递归思想媒体使用多媒体课件:用动画模拟二叉树的遍历过程, 辅助解释二叉 树的基本概念教学网络平台:相关教学材料信息学院课程教案20思考题课后导读数据结构与算法许卓群编著,高等教育出版社。参阅相关章节:给出了有关扩充二叉树及其性质教学后记教学专题二叉树的存储结构及实现 14教学专题 二叉树的存储结构及实现 授课学时 2 学时(100 分钟)教学章节 541、543 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 二叉链表存储结构、二叉树遍历算法教学难点 二叉树遍历算法的递归与非递归实现学习要求知识点了解
42、理解 掌握 熟练掌握二叉树的顺序存储结构 二叉链表存储结构 二叉树遍历算法的递归实现 二叉树前序、中序遍历的非递归实现 二叉树后序遍历的非递归实现 二叉树的构造算法 教学内容和教学目标三叉链表及其静态链表形式 课程引入:通过分析二叉树结点间的逻辑关系,如何解决存储问题? 5 分钟1给出二叉树的顺序存储方法,分析缺点,确定适用情况2复习单链表结点结构,给出二叉链表的结点结构3根据二叉树的 ADT 定义, 给出二叉链表类4根据二叉树的前序遍历操作定 义, 给出前序遍历的递归 算法,引导学生写出中序和后序遍历的算法5根据前序遍历的递归算法,引出前序遍历的非递归算法6分析中、后序遍历的执行过程,非递归
43、算法要求学生课后完成7分析层序遍历的执行过程,写出层序遍历算法8给出扩展二叉树的定义,给出构造函数9提问题:如何从二叉链表中快速 查找双亲?引出三叉链 表10 分钟5 分钟5 分钟10 分钟20 分钟10 分钟10 分钟15 分钟5 分钟教学过程课程总结:二叉树的存储结构、二叉 树遍历算法的递归与非 递归实现 5 分钟教学提示 1二叉树的顺序存储的适用情况,用存储位置表示逻辑关系信息学院课程教案212二叉链表存储结构如何体现结 点间的逻辑关系, 递归遍 历过程3在深入剖析二叉树遍历算法 执行过程的基础上, 给出非 递归遍历算法 媒体使用多媒体课件:用动画模拟二叉树遍历算法的执行过程教学网络平台
44、:相关教学材料思考题课后导读数据结构与算法许卓群编著,高等教育出版社。参阅相关章节:给出了树遍历操作的具体实现及树的其它存储方法教学后记教学专题树、森林与二叉树间的转换、应用举例 15教学专题1树、森林与二叉树间的转换2二叉树与树的应用举例授课学时 2 学时(100 分钟)教学章节 55、56 授课对象 计算机学科各专业本科生教学类型 理论课 授课形式 课堂讲授教学重点 树和二叉树之间的转换、Huffman 树的构造方法、Huffman 编码方法教学难点 二叉树转换为树、Huffman 算法学习要求知识点了解 理解 掌握 熟练掌握树转换为二叉树 森林转换为二叉树 二叉树转换为树或森林 树、森林
45、与二叉树转换的形式化描述 森林的遍历 Huffman 树的定义 Huffman 树的构造方法 教学内容和教学目标Huffman 树的构造算法 信息学院课程教案22Huffman 编码与解码的方法 Huffman 编码算法 树的应用举例 课程引入:通过给出树和二叉树转换的目的 2 分钟1画出一棵树的孩子兄弟表示法存 储示意图和对应二叉树 的二叉链表存储示意图,引出树和二叉树转换 的媒介和基本方法2强调森林是树的集合,观察树转换为二叉树的特点,得出森林转换为二叉树的方法3树和二叉树转换是互逆的,给出二叉树转换为树或森林的方法4复习树的遍历方法,给出森林的遍历方法5结合具体实例介绍 Huffman
46、树的相关概念,重点解释权值6观察 Huffman 树的特点,给出 Huffman 算法的基本思想,运行构造Huffman 树的过程7设计 Huffman 树的存储结构,给出算法的伪代码描述及 C+描述8介绍等长编码和不等长编码 ,通 过实例强调在设计不等 长编码时,必须考虑解码的惟一性,引出前 缀码9分析 Huffman 编码算法的关键问题,具体实现由学生课后完成10给出树的应用实例的问题 描述和分析,具体 实现由学生 课后完成10 分钟5 分钟5 分钟3 分钟5 分钟10 分钟20 分钟5 分钟5 分钟7 分钟20 分钟教学过程课程总结:二叉树与树和森林的关系;Huffman 树的构造和 H
47、uffman 编码的要点3 分钟教学提示1以二叉链表为媒介,导出树或森林与二叉树之间的关系2通过 Huffman 树的构造解决 Huffman 编码问题媒体使用多媒体课件:用动画模拟树和二叉树的转换过程,用 动画解析 Huffman 算法的动态执行过程,辅助解释基本概念教学网络平台:相关教学材料思考题课后导读数据结构与算法许卓群编著,高等教育出版社。参阅相关章节:给出了 Huffman 编码是前缀编码以及 Huffman 编码 是最短前缀编码的证明教学后记教学专题图的逻辑结构 16教学专题 图的逻辑结构 授课学时 2 学时(100 分钟)教学章节 61 授课对象 计算机学科各专业本科生信息学院
48、课程教案23教学类型 理论课 授课形式 课堂讲授教学重点 图的定义及基本术语、图的遍历操作教学难点 图的遍历操作学习要求知识点了解 理解 掌握 熟练掌握图的定义 图的基本术语 图的抽象数据类型定义 图的深度优先遍历 教学内容和教学目标图的广度优先遍历 课程引入:举例现实中的非线性问题有些是图形结构,如何解决? 2 分钟1给出图的定义,注意与线性结构、树结构进行比较2通过具体实例介绍图的基本 术语3通过复习遍历等相关概念,提出图的遍历要解决哪些关 键问题4给出深度优先遍历的思想,通过实例分析深度优先遍历过 程中工作栈的状态变化,给出算法的伪代 码描述5给出深度优先遍历的思想,通过实例分析深度优先遍历过 程中工作栈的状态变化,给出算法的伪代 码描述5 分钟45 分钟10 分钟20 分钟15 分钟教学过程课程总结:图的深度、广度优先遍 历方法,两者之 间的区别 3 分钟