创新数据结构实验教学思索和探索

创新数据结构实验教学思索和探索

ID:6023799

大小:30.50 KB

页数:9页

时间:2017-12-31

创新数据结构实验教学思索和探索_第1页
创新数据结构实验教学思索和探索_第2页
创新数据结构实验教学思索和探索_第3页
创新数据结构实验教学思索和探索_第4页
创新数据结构实验教学思索和探索_第5页
资源描述:

《创新数据结构实验教学思索和探索》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、创新数据结构实验教学思索和探索  摘要:该文通过选择几个典型的实验教学问题,探讨了如何进行数据结构实验教学内容创新的思路和方法,对于启发学生的学习兴趣,培养学生的实践动手能力,开拓学生的创新思维,提高实验教学的质量和效果,提供了有益的借鉴。关键词:实验教学;创新;案例教学中图分类号:TP3文献标识码:A文章编号:1009-3044(2013)19-4481-041概述数据结构是一门实践性很强的理论课,它的教学要求是:学会分析研究计算机加工的上海建工的特性,以便为应用涉及的数据选择适当的逻辑结构、

2、存储结构及其响应的算法,并初步掌握算法的时间分析和空间分析的技术。同时,课程的学习过程也是复杂程序设计的训练过程,进一步提高学生的程序设计能力并培养数据抽象能力[1-4]。9数据结构课程的特点是既抽象、晦涩、看不见摸不着,同时又非常真实具体、客观存在于计算机的存储空间。如何通过合理设置课程实验内容,将抽象的逻辑概念与真实的存储状态直接关联,把课程中的前后章节的知识和技术相结合,并在课程中引入一些新的思想、知识和技术,拓展学生的形象思维和逻辑思维的能力,开拓学生的视野,激发学生的学习兴趣,增强学生

3、的学习信心,提高教学效果,值得思考和探索。该文拟就数据结构实验教学环节的一些典型问题进行研讨。2几个典型的实例案例1:线性表的顺序映像和非顺序映像线性表的实验作为数据结构课程实验的入门环节,实验内容的设置和选择,对于整个课程实验的教学至关重要。如何尽快培育和提高学生的信心和学习兴趣,需要精心组织和设计。一个有效的途径是,通过具体的实验过程,让学生看到线性表的顺序映像和非顺序映像在计算机存储器中的真实状态,以加深对这两个逻辑概念的理解,启发学生应用形象思维的能力。具体方法:在实现顺序表和单链表的创

4、建、插入和删除操作的过程中,通过同时输出数据元素的值和存储地址的方式,把数据元素在计算机中的真实存储状态及其变化呈现出来。实例讨论:以下列线性表的创建、插入、删除和查找过程为例。9由图1可知,在顺序表结构中,数据元素连续存放在一组地址连续的存储空间,每个元素的存储位置与其序号直接关联,一旦进行了插入或删除操作,使得某个数据元素的序号发生改变,则其对应在线性表中的存储地址同步改变;而在图2中,单链表结构下数据元素的存储是任意的,并且单链表一旦建立,其每个结点的存储位置不再改变,不会因为结点的插入或

5、删除而发生变化。通过这样的实验训练,可以让学生看到线性表的不同存储结构在计算机存储器中的真实情况及其变化过程,从而很快进入正常的学习状态,消除畏难情绪,提高学习的积极性和主动性。案例2:二叉树中各种类型结点的统计二叉树的遍历是整个二叉树实验的基础,为了加深的二叉树存储状态的理解,在实现对二叉树进行先序、中序和后序遍历的递归和非递归算法及层序遍历的基础上,适当扩展实验内容,设置对二叉树中结点总数、叶子结点、单分支结点或双分支结点进行统计的实验内容,开拓学生的解题思路,培养学生的程序设计能力。具体方

6、法:通过归纳各种结点数计算的递推公式,直接进行递归算法的设计;也可借鉴二叉树遍历的各种算法,在进行结点遍历的过程中,通过对当前所访问的结点类型的判别,进行分类统计,实现实验的目的。实例讨论:以二叉树结点总数的求解算法为例。9以下列出了两个具体的算法。分别描述了通过递推公式设计对应的递归算法,和利用中序非递归遍历算法进行修改实现对二叉树结点总数统计的算法代码。算法1利用递推公式转换的递归算法计算二叉树中的结点总数intnodes(BiTreet){/*利用递推公式计算二叉树的结点总数*/intco

7、unt1,count2;if(t==NULL)return0;/*树空*/elseif(t→lchild==NULL&&t→rchild==NULL)/*左子树、右子树不存在*/return1;else{count1=nodes(t→lchild);/*左子树结点数*/count2=nodes(t→rchild);/*右子树结点数*/returncount1+count2+1;/*返回结点总数*/}}算法2利用改写的二叉树中序遍历非递归算法计算二叉树中的结点总数intnodes_inorder_

8、n(BiTreep){/*利用中序遍历非递归算法统计二叉树的结点总数*/9BiTreeq,stack[MAX];intcount=0;inttop=0;q=p;do{while(q){stack[top++]=q;q=q→lchild;}if(top>0){q=stack[—top];printf(”%c”,q→data);count++;/*访问结点时统计个数*/q=q→rchild;}}while(q

9、

10、top>0);returncount;}算法3利用改写的二叉树先序遍历递归算法计算二叉树

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。