数据结构(Java语言版)-教案李春葆 第1--9教学周 数据结构的体系结构和基本概念---栈和队列的顺序存储和链式存储.docx
数据结构(Java)课程/项目教案(指导性纲要Ver2.0版本试行)课程/项目代码:专业教育 管理团队课程类别/ 项目级别课程类别:学科基础课项目级别:一级项目【】二级项目【】授课专业学生层次本科专科课程负责人专业教师素质教师课内学时总学时:64周学时:4总学分:4理论学时:48实践学时:16课外学时 及 内容设计合作学习学时及内容安排:包括校内与校外学时:64分组讨论分组练习【J其它:自主学习学时及内容安排:包括校内与校外学时:64预习/复习V课后作业【J其它:授课时间学年第1学期 第1周至第16周先修课程/ 项目面向对象程序设计(Java)后续课程/ 项目Java高级框架、移动应用开发等教学资源教材及参考资料:数据结构教程(Java语言描述),李春葆等主编,清华大学出版社,9787302551348, 2020年9月.数据结构教程(Java语言描述)学习与上机实验指导,李春葆等主编,清华大学 出版社,9787302551355, 2020 年 9 月.其他教学资源:多媒体课件:任课教师提供网络课程:慕课网址,https :www. icoursel63. org/数据结构与算法综合资料库(WWW. VCHOME. NET). CHM:帮助文档;数据结构题库,. cn/数据结构demo:各种算法的动画演示。程序源码。教学环境1、使用投影仪和网络。2、学生自带笔记本电脑,在Windows平台上安装程序设计语言编程环境进行实验。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一课外学习讲评(5分钟).随机抽取1个小组演示四级项目第二阶段第一部分按单链表方式存储的实现 案例。二、内容导入(10分钟)前面学习了单链表的类型定义和创建单链表,提问:1 .单链表如何进行类型定义和初始化;2 .如何定义通讯簿中的节点类型。3 .如何操作单链表中的元素。三、主要内容设计L按序号和按值查找带头结点的单链表(15分钟)【动画演示】按序号和按值查找带头结点的单链表的过程【讲授】按序号和按值查找带头结点的单链表的思想和算法【实验】编程实现单链表的查找算法4 .单链表的插入(20分钟)【角色扮演】单链表的插入过程【动画演示】单链表的插入过程【讲授】单链表的插入思想和算法【实验】编程实现单链表的插入算法5 .单链表的删除(25分钟)【角色扮演】单链表的删除过程【动画演示】单链表的删除过程【讲授】单链表的删除思想和算法【实验】编程实现单链表的删除算法【归纳总结】 (10分钟)教学重难点是掌握单链表的插入、删除、查找算法。【课外学习要求】 (5分钟)完成四级项目第二阶段第二部分:按单链表方式存储后插入、删除、查找功能。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一课外学习讲评(5分钟).随机抽取1个小组演示四级项目第二阶段第一部分按单链表方式存储的实现 案例。二、内容导入(10分钟)前面学习了单链表的类型定义和创建单链表,提问:1 .单链表如何进行类型定义和初始化;2 .如何定义通讯簿中的节点类型。3 .如何操作单链表中的元素。三、主要内容设计L按序号和按值查找带头结点的单链表(20分钟)【动画演示】按序号和按值查找带头结点的单链表的过程【讲授】按序号和按值查找带头结点的单链表的思想和算法【实验】编程实现单链表的查找算法4 .单链表的插入(20分钟)【角色扮演】单链表的插入过程【动画演示】单链表的插入过程【讲授】单链表的插入思想和算法【实验】编程实现单链表的插入算法5 .单链表的删除(20分钟)【角色扮演】单链表的删除过程【动画演示】单链表的删除过程【讲授】单链表的删除思想和算法【实验】编程实现单链表的删除算法【归纳总结】 (5分钟)教学重难点是掌握单链表的插入、删除、查找算法。【课外学习要求】 (10分钟)完成四级项目第二阶段第二部分:按单链表方式存储后插入、删除、查找功能。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评(5分钟).检查学生按单链表方式存储后插入、删除、查找功能二、内容导入(10分钟)前面学习了单链表的类型定义和创建单链表,提问:1 .单链表如何进行类型定义和初始化;2 .如何定义通讯簿中的节点类型。3 .如何操作单链表中的元素。4 .复习顺序表与单链表的基本操作。三、主要内容设计1 .复习顺序表的基本操作(30分钟)【复习】顺序表的插入、删除、查找的过程【讲授】顺序表的插入、删除、查找的过程【实验】编程顺序表的插入、删除、查找。2 .复习单链表的基本操作(30分钟)【复习】单链表的创建、插入与删除过程【讲授】单链表的创建、插入与删除过程【实验】单链表的创建、插入与删除算法【归纳总结】 (5分钟)教学重难点是掌握单链表的插入、删除、查找算法。【课外学习要求】 (10分钟)完成四级项目第二阶段第二部分:按单链表方式存储后插入、删除、查找功能。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评随机抽取1个小组演示四级项目第二阶段第一部分按单链表方式存储的实现 案例。二、内容导入前面学习了单链表的类型定义和创建单链表,提问:1 .单链表如何进行类型定义和初始化;2 .如何定义通讯簿中的节点类型。3 .如何操作单链表中的元素。三、主要内容设计评讲假期作业:1 .编写程序。设n个元素的线性表顺序存储在一维数组rO.maxlenT的前 n个位置上,试将新元素e插入表中第i-1个和第i个元素之间,写出算法。顺序 表的结构为:2 .编写程序。设n个元素的线性表顺序存储在一维数组r0. maxlen-1的前 n个位置上,试删除值为x的元素,写出算法。顺序表的结构为:3 .编写程序。假设线性表L=(al,a2,an)用带头结点的单链表存储表示, 试编写算法对其实现就地逆置,即利用原链表中每一个结点存储空间,使得元 素的逻辑次序改变为(an,a2,al)o单链表结点结构为:4 .编写程序。设Head为带表头结点的单链表的头指针,试写出算法:若为非空 表,则输出:最大结点和最小结点的值(data值);否则,输出:“Empty list”。 单链表结点结构为:5 .设计一算法,找出单向链表中中间结点,返回中间结点指针,若链表为空, 则返回空指针。单链表结点结构为:6 .已知线性表的元素按递增顺序排列,并以带头结点的单链表作为存储结构。 试编写一个删除表中所有值大于min并且小于max的元素的算法。函数原型:int del (struct node *head, int min, int max);单链表结点结构为:【归纳总结】教学重难点是掌握单链表的插入、删除、查找算法。【课外学习要求】完成四级项目第二阶段第二部分:按单链表方式存储后插入、删除、查找功能。【课后分析及改进】注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评随机抽取1个小组演示四级项目按单链表方式存储后插入、删除、查找功能的 实现案例。二、内容导入前面学习了单链表的插入和删除等基本操作,提问:1 .单链表的插入是按什么插入?2 .在实际的应用中,比如学生成绩管理系统中,学号是递增有序的,转走一名 学生,又转来一名学生,一般转来的学生是占用转走学生的学号。那么,这时转来 学生信息就要插入到链表中,这时插入不是按序号插入,而是按学号递增有序的插 入,插入前和插入后都是按学号递增有序的。像这种情况我们又应该怎样实现呢?3 .如果我们创建链表,是在头部插入结点,那么链表中结点的顺序和我们输入 的顺序刚好相反,但一般来说,我们希望链表中结点的顺序和我们输入的顺序一致, 这时就需要对创建好的链表就地逆置。今天我们就来解决以上问题。三、主要内容设计1 .单链表按顺序插入【案例】单链表按顺序插入【动画演示】单链表按顺序插入的过程【讲授】单链表按顺序插入思想和算法【实验】单链表按顺序插入算法的实现2 .单链表就地逆置【案例】单链表就地逆置【动画演示】单链表就地逆置过程【讲授】单链表就地逆置思想和算法【实验】编程实现单链表的逆置算法【归纳总结】教学重难点是掌握单链表的实际应用。【课外学习要求】完善完成四级项目第二阶段:链表操作。【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评随机抽取1个小组讲评四级项目第二阶段。二、内容导入前面学习了单链表,提问:1 .单链表有哪些特点?2 .从单链表的中间某节点出发,能否访问其前驱节点?如何改进? 下面我们介绍两种改进的方案:单循环链表和双向循环链表。三、主要内容设计1 .单循环链表的特点及基本操作【讲授】单循环链表的特点【案例】两个单循环链表的合并2 .双向循环链表的特点及基本操作3 .循环链表的应用【角色扮演】约瑟夫生死者游戏【讲授】通过“约瑟夫生死者游戏”讲解单循环链表的应用【讨论】“约瑟夫生死者游戏”的实现【归纳总结】教学重难点是对单循环链表及双向循环链表的理解。【课外学习要求】1 .完成线性表一章的习题。2 .编程实现“约瑟夫生死者游戏”。【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。单元教案首页单元CU (3)学时12周次第7-9教学周教学环境设计与 组织安排课堂,笔记本电脑,小组合作单元 名称栈和队列单元项 目名称栈和队列的顺序存储和链式存储学标达度 教目及成理论知识理解并掌握栈和队列的应用专业技能对根据具体的问题进行数据结构抽象化的能力 熟练运用程序设计语言实现数据结构算法的能力 具有较强的口头表述能力职业道德能够正确认识人生价值的自我实现和对他人所负的责任具有正直并勇于负责的职业道德和敬业精神教学 重点 难点用程序设计语言进行堆栈的基本操作(进栈、出栈);栈空、栈满的判断条件;用程序设计语言进行队列的基本操作(入队、出队);队空、队满的判断条件; 环状队列的基本操作(入队、出队)。学法段介 教方手媒教学方法:讲授、讨论、演示、角色扮演、练习、实验、研究性学习、案例、合作学习、 指导教学、任务分析、自主学习、读书、问题教学。教学媒介:教科书、板书、多媒体。教学 组织 方式1 .讲评一一课后作业2 .互动一一表演栈和队列的操作过程3 .讲解一一栈和队列的基本操作和算法实现4 .操作一一编程实现顺序栈、顺序队、链栈、链队的插入、删除等操作实践 环节课内实践环节:编程实现顺序栈、顺序队、链栈、链队的插入、删除等操作课外实践环节:平时成绩管理系统中,用栈和队的思想来处理学生信息。教学设计注释:教学设 计按每次课2 学时撰写。【教学进程安排】重点设计教学步骤与具体内容安排O 一、课外学习讲评L讲评课后习题2.讲评“约瑟夫生死者游戏”的程序实现。二、内容导入前面学习了线性表,提问:1 .线性表有哪些特点?2 .顺序表与单链表的异同。下面我们介绍两种特殊的线性表,注意观察它们的特殊性。三、主要内容设计1 .栈的定义及特点【讲授】栈的定义。【案例】砌墙、书架【讲授】特点:后进先出2 .栈的顺序存储结构【讲授】栈的顺序存储结构定义。3 .栈的基本操作算法【讲授】(1)初始化栈Init_Stack(S)(2)入栈 Push_Stack(S, x)(3)出栈 Pop_Stack(S)(4)获取栈顶元素内容Top_Stack(S) (5)判断栈是否为空Empty_Stack (S)4 .实现顺序栈的入栈、出栈程序【实验】要求创建一个顺序栈,以入栈方式输入一些元素,然后以出栈方式将这些元素输出。【归纳总结】教学重难点是对顺序栈及其操作的理解。【课外学习要求】完成四级项目第三阶段:学生信息按顺序栈存储实现。【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评随机抽取1个小组讲评四级项目第三阶段。二、内容导入前面学习了栈的特点和栈的顺序存储结构,提问:1 .栈属于那种数据结构?它的特点是什么?2 .栈的顺序存储结构一般用于那些情况?对于长度不太确定的时候,采用顺序 栈是否合理,为什么?下面我们介绍栈的链式存储结构。三、主要内容设计1 .栈的顺序结构举例【案例】设计一个算法判断一个字符序列是不是同文(回文是指一个字符序列 以中间字符为基准两边字符完全相同)。【讨论】顺序栈如何实现2 .栈的链式存储结构【讲授】栈的链式存储结构。3 .链栈的基本操作算法【讲授】 (1)初始化栈SLInitiateO(2)入栈 SLPush(Is, x) (3)出栈 SLPop(ls,&x)(4)获取栈顶元素内容SLGetTop(ls)(5)判断栈是否为空SLIsEmpty(ls)4 .实现链栈的入栈、出栈程序【实验】编程实现链栈的入栈、出栈程序【归纳总结】教学重难点是对链栈及基本操作的理解。【课外学习要求】完成四级项目第四阶段:学生信息按链栈存储实现【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评随机抽取1个小组讲评四级项目第四阶段。二、内容导入栈是一种后进先出的结构,那么队列呢?它是先进先出的结构。大家举出生活 中的队列的案例。三、主要内容设计1 .队列的定义及特点【讲授】队列的定义【案例】排队上车、模拟打印机缓冲区2 .队列的顺序存储结构【引导】在栈的基础上,写出顺序队的存储结构3 .顺序队的基本操作【讲授】(1)入队(2)出队(3)队空、队满的判断4 .循环队列的基本操作算法【案例】(1)假溢出的产生及解决方案(2)队空、队满的判断【讲授】 (1)初始化队列CirQueue *InitCQueue()(2) 入队 intEnCQueue ( CirQueue *q , ElemType x)(3)出队 intDeCQueue (CirQueue *q , ElemType *x)5.实现循环队列的入队、出队程序【实验】要求创建一个循环队列,设计一个算法实现循环列管理的模拟。【归纳总结】教学重难点是对顺序队及循环队的理解和算法实现。【课外学习要求】完成四级项目第五阶段:学生信息按循环队列存储实现。【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。单元教案首页单元CU (1)学时4周次第1教学周教学环境设计与 组织安排课堂,笔记本电脑,小组合作单元 名称绪论单元项 目名称无学标达度 教目及成理论知识了解数据结构的体系结构和基本概念专业技能具有基本算法设计与分析的能力具有科技资料与文献的收集与检索能力具有自我学习能力及新技术开发与研究的能力职业道德具有积极向上的学习态度和良好的学习习惯教学 重点 难点理解数据、数据元素和数据结构的基本概念 培养良好的学习习惯和态度学法段介 教方手媒教学方法:讲授、讨论、演示、练习、合作学习、指导教学、任务分析、自主学习、读 书、问题教学。教学媒介:教科书、板书、多媒体。教学 组织1 .讲解一一基本概念,衡量算法的标准:时间复杂度、空间复杂度的计算2 .互动一一分小组搜集资料,说明数据结构课程的学习价值3 .讲评一一时间复杂度的计算练习4 .演示一一四级项目(1)实践 环节课内实践环节:练习时间复杂度的计算课外实践环节:运行四级项目,确定目标注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】一、课外学习讲评随机抽取1个小组讲评四级项目第五阶段。二、内容导入总结顺序队列存储的优缺点三、主要内容设计1 .队列的链式存储结构【引导】写出链队的存储结构2 .链队的基本操作【讲授】(1)入队(2)出队(3)队空的判断(1) LQueue *Init_LQueue()(2) void In_LQueue(LQueue *q , datatype x)(3) int EmptyLQueue( LQueue *q)(4) int OutLQueue(LQueue *q , datatype *x)3 .实现链式队列的入队、出队程序【实验】要求创建一个链式队列,模拟停车场管理。【归纳总结】教学重难点是对链式队列的理解和算法实现。【课外学习要求】1 .进制转换2 .括号匹配3 .表达式求值分组准备算法及PPT【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】一、课外学习讲评讲评学生作业二、内容导入栈和队列的知识点复习与总结三、主要内容设计1 .进制转换【演示】抽点3位学生演示进制转换的代码【案例】请同学用自己准备的PPT讲解进制转换的实现思路2 .括号匹配【演示】抽点3位学生演示括号匹配的代码【案例】请同学用自己准备的PPT讲解括号匹配的实现思路3 .表达式求值【演示】抽点3位学生演示表达式求值的代码【案例】请同学用自己准备的PPT讲解表达式求值的实现思路4 .总结与实践【实践】学生根据讲评的结果修改自己的代码。【归纳总结】教学重难点是对链式队列的理解和算法实现。【课外学习要求】总结线性结构、完成ftp习题,预习树型结构。【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。成都东软学院数据结构(Java)课程/项目教案NeUSOft教学设计【教学进程安排】 一、课外学习讲评注释:教学设 计按每次课2 学时撰写。二、内容导入三、主要内容设计【测试】测试(绪论、线性表、栈和队列)【归纳总结】教学重难点是对链式队列的理解和算法实现。【课外学习要求】总结线性结构、完成ftp习题,预习树型结构。【课后分析及改进】教学团队对课程/项目教学设计的可行性、知识与能力指标的达成度、教与学环 节的设计、教学重点与难点的把握、教学方法手段的有效性、师生双边活动的设计、 课内与课外的结合、教与学的效果等课堂教学过程情况进行总结与分析,共同研讨 确定改进措施与方案。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评(5分钟)上学期我们学习了 Java语言课程,同学们学会了编写简单的程序,每个小组都完 成了学生成绩管理系统。但算法不同,导致程序效率有高有低,举例。二、内容导入(10分钟)绝非掌握了某种语言就能写出优秀的程序,尤其是今天以非数字计算领域为主 的时代,学习“数据结构”有着至关重要的作用。程序二数据结构+算法。三、主要内容设计1 .教学要求(30分钟)【讲授】该课程的内容串讲【讲授】学习方法【讲授】教学要求【讲授】考核方式2 .数据结构示例(15分钟)【演示】学生信息表【演示】人机对弈【演示】教学计划的制定【讨论】学生举出数据结构的案例3 .数据结构的基本术语(10分钟)【自主学习】数据、数据元素、数据对象、数据类型的基本概念【讲授】数据结构的逻辑结构、存储结构等概念4 .算法和算法的分析(10分钟)【讲授】算法的基本概念【讲授】算法的特性【讲授】算法设计的要求【讲授】时间复杂度的概念【归纳总结】 (5分钟)本次课学习的重难点是让学生清楚教学要求,理解一些基本概念。【课外学习要求】 (5分钟),分组查阅资料、讨论学习该课程的重要意义,进一步领会较复杂的基本概念。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评(5分钟)分小组总结该课程的学习意义,教师归纳。二、内容导入(10分钟)前面学习了数据结构的基本概念。提问:1 .什么是数据结构、数据元素?2 .数据结构这门课程所研究的是什么内容?3 .怎样衡量一个算法的好坏,什么是算法时间复杂度?在理解了时间复杂度的概念之后,我们要能灵活分析算法的时间复杂度,熟练 掌握它,这节课的内容首先是算法时间复杂度举例及上机实践。三、主要内容设计1 .算法时间复杂度的计算(30分钟)【讲授+案例】时间复杂度的计算。【讨论】学生评价自己在C语言课程完成的“学生成绩管理系统”包括插入、 删除、查找、排序等算法的时间复杂度。【讨论】分组讨论并做课堂汇报,评比系统时间复杂度最低小组。2 .四级项目任务布置(30分钟)【演示】运行四级项目“学生成绩管理系统”,包括考勤、课堂表现、平时作 业、平时综合成绩等功能的管理。【归纳总结】 (5分钟)教学重难点是时间复杂度的计算方法,四级项目的任务理解。【课外学习要求】 (10分钟)1 .对复杂算法进行时间复杂度的分析,小组内互相出题互评。2 .讨论四级项目。单元教案首页单元CU (2)学时20周次第2-6教学周教学环境设计与 组织安排课堂,笔记本电脑,小组合作单元 名称线性表单元项 目名称顺序表、链表的查找、插入与删除学标达度 教目及成理论知识理解并掌握顺序表和链表的运算和处理专业技能对根据具体的问题进行数据结构抽象化的能力 熟练运用程序设计语言实现数据结构算法的能力 具有较强的口头表述能力职业道德能够正确认识人生价值的自我实现和对他人所负的责任具有正直并勇于负责的职业道德和敬业精神教学 重点 难点顺序表的结构及对其进行的基本操作;单链表的建立与释放(节点的配置与释放)以及单链表的查找、插入和删除操作。学法段介 教方手媒教学方法:讲授、讨论、演示、角色扮演、练习、实验、研究性学习、案例、合作学习、 指导教学、任务分析、自主学习、读书、问题教学。教学媒介:教科书、板书、多媒体。学织式 教组方1 .讲评一一课后作业2 .互动表演顺序表、链表的基本操作3 .讲解一一顺序表、链表的基本操作和算法实现4 .操作一一编程实现顺序表、链表的插入、删除、查找等操作实践 环节课内实践环节:编程实现顺序表、链表的插入、删除、查找等操作课外实践环节:平时成绩管理系统中,学生信息的插入、删除、查找、修改等步骤Neusoft注释:教学设 计按每次课2 学时撰写。成都东软学院数据结构(Java)课程/项目教案教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评(5分钟)随机抽点1个小组的同学讲解他们所分析的题目的时间复杂度。二、内容导入(10分钟)第一次课我们讲到,数据结构的逻辑结构包括4种,他们分别是哪四种?今天 我们就从线性结构入手,逐渐学习线性结构、树形结构和图形结构的存储,运算等 内容。三、主要内容设计1 .线性表定义(15分钟)【讲授】线性表定义及运算2 .线性表的顺序存储结构(15分钟)【讲授】顺序表的存储结构,实现线性表的顺序存储结构的类型定义【讲授】复习C语言中的结构体和指针知识,让学生进一步理解顺序表所用的 结构体定义【讲授】顺序表的基本操作:初始化顺序表。3 .顺序表的基本输入、输出(20分钟)【讨论】顺序表的基本输入、输出程序的编写【实践】顺序表的基本输入、输出程序的编写4,顺序表的查找操作(10分钟)【案例】查找操作的应用【动画演示】顺序表的查找过程【讲授】顺序表的查找思想【归纳总结】 (10分钟)教学重难点是顺序表的结构定义、输入输出及查找的基本操作。【课外学习要求】 (5分钟)1 .复习c语言知识:函数、结构体、指针。2 .完成四级项目第一阶段第一部分:按顺序表存储的查找功能。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评(5分钟).随机抽点2个小组的同学讲评他们完成的四级项目分解。二、内容导入(10分钟)上节课学习了如何定义一个顺序表。提问:1 .怎样定义一个学生成绩管理系统的数据结构?2 .知识迁移:其它哪些系统可以用顺序表来定义,请举例。今天我们来看看顺序表的插入、删除操作。三、主要内容设计1 .顺序表的插入操作(20分钟)【讨论】插入操作的应用【动画演示】顺序表的插入过程【讲授】顺序表的插入思想2 .顺序表的删除操作(20分钟)【案例】删除操作的应用【动画演示】顺序表的删除过程【讲授】顺序表的删除思想3 .算法实践(15分钟)【实验】编程实现顺序表的插入、删除算法4 .插入、删除时间复杂度分析(5分钟)【讨论】分析顺序表插入、删除算法的时间复杂度【归纳总结】 (10分钟)教学重难点是顺序表的插入、删除思想的理解。【课外学习要求】 (5分钟)1 .继续完成四级项目第一阶段第二部分:按顺序表存储的插入、删除功能。2 .完成课后习题顺序表部分。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排。一、课外学习讲评(5分钟)评讲顺序表的练习题二、内容导入(10分钟)上次课的课后学习要求是完成四级项目按顺序表存储的插入、删除功能,下面 通过抽签的方式选出3个小组进行演示和答辩。三、主要内容设计1 .组长抽签2 .评委抽签3 .被抽小组演示和答辩(30分钟)【演示】第一组同学演示项目【讲授】第一组同学讲解思路及代码【探究】评委提问,第一组同学回答【讨论】评委打分【演示】第二组同学演示项目【讲授】第二组同学讲解思路及代码【探究】评委提问,第二组同学回答【讨论】评委打分【演示】第三组同学演示项目【讲授】第三组同学讲解思路及代码【探究】评委提问,第三组同学回答【讨论】评委打分4 .总结(15分钟)【讲授】教师总体点评【归纳总结】 (20分钟)教学重难点是对四级项目第一阶段的讲评。【课外学习要求】 (10分钟)1 .各小组完善四级项目第一阶段:按顺序表存储的插入、删除功能。2 .预习链表内容。注释:教学设 计按每次课2 学时撰写。教学设计【教学进程安排】重点设计教学步骤与具体内容安排o 一、课外学习讲评(10分钟)检查学生的四级项目的插入和删除操作的完成情况。二、内容导入(10分钟)前面学习了顺序表的类型定义和创建单链表,提问:1 .写出顺序表的类型定义;2 .单链表结点分为两部分,其中数据域的数据类型可以是那些类型,举例说明;3 .定义一个员工工资管理系统中的员工工资类型。要解决顺序表的缺点,就必须学习本周将学习的类型一一链表。三、主要内容设计1 .基本概念(10分钟)【讲授】线性表的链式存储、数据域及指针域的概念。2 .单链表的类型定义和初始化(15分钟)【讲授】单链表的类型定义和初始化3 .创建单链表及输出单链表的结点(20分钟)【案例】创建单链表【角色扮演】创建单链表过程【动画演示】创建单链表过程【讲授】创建单链表的思想和算法4,求单链表的长度(15分钟)【讲授】求单链表长度的算法【归纳总结】 (5分钟)教学重难点是单链表的两种创建方式。【课外学习要求】 (5分钟)完成四级项目第二阶段第一部分:按单链表方式存储的功能。