【高级语言程序设计】教案08指针.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第22次课授课题目动态数据类型与链表授课时长2 学时授课进度第 11 周,第2次课章节8.1-8.3教学改革试点班教学目标掌握动态数据类型的特点,使用和存储方式;掌握与链表有关的操作编程。教学重点1. 动态变量的使用。2. 线性表的存储结构教学难点动态变量生成与回收,链表的基本操作。教学方法分析形象比喻,注重思路引导。利用生活中的例子,引导学生理解抽象数据类型;多媒体演示教学重点及编程示例;学生做课堂练习,练习编写较为简单的链表程序。教学目的? 1.?掌握数组的声明、表示及赋值。?2.?理解数组元素的内存分配。?教学重点和难点? 重点:数组的声明、表示及赋值?难点:数组的内存分配??教学方法和手段? 1.教师精讲理论内容? 2.多媒体展示教学重点、及程序代码示例授课方法和手段多媒体讲授,讨论及PPT演示主要授课内容及相应授课方法复习导引复习【问】数组的特点?【答】长度固定,连续存储【问】数组的优点缺点各是什么?【答】优点:方便随机存取;缺点:需要连续空间;插入删除操作不方便;长度固定,造成浪费;引入新课利用动态数据类型,可以解决数组使用不够灵活的问题新课讲解8.2 动态数据类型8.2.1 静态数据类型与动态数据类型静态类型:数据属性在编译时确定动态类型:数据属性在程序运行期间生成,通过指针变量间接访问8.2.2 动态变量的生成与回收1. 堆式存储管理2. 动态变量的生成标准过程 new( )获取内存空间,将空间首地址存入指针变量。3. 动态变量的释放与回收标准过程 dispose()释放内存空间8.3 指针的应用引例:生活中的链表1. 寻宝游戏2. 存在储物柜里的密码条体现思想:部分串连成整体链表的特点:长度可变,不必连续,环环相扣(易丢失)8.3.1 链表的基本结构链表头结点数据下一结点地址链表尾8.3.2 链表的基本操作1. 尾插法建链表(含头结点)【例8.3.1】输入一组整数,以0为结束标志,建立链表。 问题分析:穿珠链的方法。反复在链表最后加入新结点,tail尾指针后移。算法分析: 过程演示:动画演示创建链表过程建立头结点(同时也是链表尾)循环【新建结点,输入数据; 接入链表尾】直到输入0为止链表尾结点next为Nil编码:(略)总结 动态数据类型使程序更灵活,链表长度可变,又不需要空间连续,是一种非常重要的数据结构。讨论、思考题及作业复习巩固动态存储分配的方法,试创建动态数组等其他动态结构。课后习题3、5。第23次课授课题目链表的应用(一)授课时长2 学时授课进度第 12 周,第1次课章节8.3链表的应用教学改革试点班教学目标掌握与链表有关的操作编程。教学重点链表的应用和相关操作教学难点操作过程中指针的修改。教学方法分析图示操作执行过程,把抽象的知识形象化,利于理解接受;多媒体演示教学重点及编程示例;学生做课堂练习,练习编写较为简单的链表程序。授课方法和手段多媒体讲授,讨论及PPT演示主要授课内容及相应授课方法一、复习导引【问】动态变量怎样生成和回收?【答】使用Pascal提供的标准过程 new()和dipose()【问】怎样创建动态链表? 【答】像穿珠子一样,创建一个结点,连接一个结点链表因为其使用灵活的特点成为常用的数据结构,这次课继续学习链表的其他应用。二、新课讲解8.3 指针的应用8.3.2 链表的基本操作2. 输出(遍历)链表【例8.3.2】输出链表中所有数据。问题分析:前提是链表已经建立,head指针已知。只需要根据每一结点的next指针找到下一结点,即可循环遍历所有结点数据。算法分析:初始化活动指针p,p= head^.next;循环【输出数据;移动p至下一结点;】直到p=nil为止;总结:利用活动指针循环移动遍历链表。注意:head指针不可轻易移动。3. 头插法建链表(头结点空)【例8.3.3】用头插法建立链表,将输入的数据逆序存放。问题分析:头插法即在头结点后反复插入新结点,因此数据在链表中存储的顺序与输入顺序反序。算法分析:建立头结点head,初始化next为Nil;循环【新建结点p,输入数据;接入链表头之后;】直到输入结束标志为止总结:此方法不需要链表尾指针。将链表反向的算法可以参照此算法。链表的应用举例【练8.3.1】在链表中查找指定数据是否存在。问题分析算法编码(略)【例8.3.4】在已经建立的有序链表中插入新数x,保持链表有序。【练8.3.2】用插入法建立有序链表。 算法:对每一个新结点【 查找插入位置; 插入结点; 】总结1. 部分—整体受现实生活中“部分串联成整体”思想的影响,本章在程序设计语言中引入了“指针”的概念,以指针为工具可以建立更为复杂的

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档