欢迎来到天天文库
浏览记录
ID:15787179
大小:146.22 KB
页数:11页
时间:2018-08-05
《【高级语言程序设计】教案指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第22次课授课题目动态数据类型与链表授课时长2学时授课进度第11周,第2次课章节8.1-8.3教学改革试点班教学目标1.掌握动态数据类型的特点,使用和存储方式;2.掌握与链表有关的操作编程。教学重点1.动态变量的使用。2.线性表的存储结构教学难点动态变量生成与回收,链表的基本操作。教学方法分析1.形象比喻,注重思路引导。利用生活中的例子,引导学生理解抽象数据类型;2.多媒体演示教学重点及编程示例;3.学生做课堂练习,练习编写较为简单的链表程序。教学目的 1. 掌握数组的声明、表示及赋值。 2. 理解数组元素的内存分配。 教学重点和难点 重点:数组的声明、表示及赋值
2、 难点:数组的内存分配 教学方法和手段 1.教师精讲理论内容 2.多媒体展示教学重点、及程序代码示例授课方法和手段多媒体讲授,讨论及PPT演示主要授课内容及相应授课方法一、复习导引1.复习【问】数组的特点?【答】长度固定,连续存储【问】数组的优点缺点各是什么?【答】优点:方便随机存取;缺点:需要连续空间;插入删除操作不方便;长度固定,造成浪费;2.引入新课利用动态数据类型,可以解决数组使用不够灵活的问题二、新课讲解8.2动态数据类型8.2.1静态数据类型与动态数据类型•静态类型:数据属性在编译时确定•动态类型:数据属性在程序运行期间生成,通过指针变量间接访问8.
3、2.2动态变量的生成与回收1.堆式存储管理2.动态变量的生成标准过程new()获取内存空间,将空间首地址存入指针变量。3.动态变量的释放与回收标准过程dispose()释放内存空间8.3指针的应用引例:生活中的链表1.寻宝游戏2.存在储物柜里的密码条体现思想:部分串连成整体链表的特点:长度可变,不必连续,环环相扣(易丢失)8.3.1链表的基本结构1.链表头2.结点①数据②下一结点地址3.链表尾8.3.2链表的基本操作1.尾插法建链表(含头结点)【例8.3.1】输入一组整数,以0为结束标志,建立链表。问题分析:穿珠链的方法。反复在链表最后加入新结点,tail尾指针后
4、移。算法分析:过程演示:动画演示创建链表过程[1]建立头结点(同时也是链表尾)[2]循环【[3]新建结点,输入数据;[4]接入链表尾[5]】直到输入0为止[6]链表尾结点next为Nil编码:(略)一、总结动态数据类型使程序更灵活,链表长度可变,又不需要空间连续,是一种非常重要的数据结构。讨论、思考题及作业1.复习巩固动态存储分配的方法,试创建动态数组等其他动态结构。2.课后习题3、5。第23次课授课题目链表的应用(一)授课时长2学时授课进度第12周,第1次课章节8.3链表的应用教学改革试点班教学目标掌握与链表有关的操作编程。教学重点链表的应用和相关操作教学难点操
5、作过程中指针的修改。教学方法分析1.图示操作执行过程,把抽象的知识形象化,利于理解接受;2.多媒体演示教学重点及编程示例;3.学生做课堂练习,练习编写较为简单的链表程序。授课方法和手段多媒体讲授,讨论及PPT演示主要授课内容及相应授课方法一、一、复习导引【问】动态变量怎样生成和回收?【答】使用Pascal提供的标准过程new()和dipose()【问】怎样创建动态链表?【答】像穿珠子一样,创建一个结点,连接一个结点链表因为其使用灵活的特点成为常用的数据结构,这次课继续学习链表的其他应用。二、新课讲解8.3指针的应用8.3.2链表的基本操作2.输出(遍历)链表【例8
6、.3.2】输出链表中所有数据。问题分析:前提是链表已经建立,head指针已知。只需要根据每一结点的next指针找到下一结点,即可循环遍历所有结点数据。算法分析:[1]初始化活动指针p,p=head^.next;[2]循环【a)输出数据;b)移动p至下一结点;[3]】直到p=nil为止;总结:利用活动指针循环移动遍历链表。注意:head指针不可轻易移动。3.头插法建链表(头结点空)【例8.3.3】用头插法建立链表,将输入的数据逆序存放。问题分析:头插法即在头结点后反复插入新结点,因此数据在链表中存储的顺序与输入顺序反序。算法分析:[1]建立头结点head,初始化ne
7、xt为Nil;[2]循环【a)新建结点p,输入数据;b)接入链表头之后;[3]】直到输入结束标志为止总结:此方法不需要链表尾指针。将链表反向的算法可以参照此算法。一、链表的应用举例【练8.3.1】在链表中查找指定数据是否存在。1.问题分析2.算法3.编码(略)【例8.3.4】在已经建立的有序链表中插入新数x,保持链表有序。【练8.3.2】用插入法建立有序链表。算法:对每一个新结点【查找插入位置;插入结点;】二、总结1.部分—整体受现实生活中“部分串联成整体”思想的影响,本章在程序设计语言中引入了“指针”的概念,以指针为工具可以建立更为复杂的如链表、树等数据结构,是
8、程序设计的
此文档下载收益归作者所有