- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
谈“数据结构”实验教学环节
摘要:本文阐述了“数据结构”课程教学中实验环节的重要性,通过一道例题说明了实验选题应该注意的基本要求以及如何通过实验步骤加强上机的学习效果。br 关键词br本文来自:计算机毕业网 :数据结构;实验;算法br br 1实习的重要性br br “数据结构”是一门理论和实践性都很强的课程,但与实际编程又有一定的距离,在课程教学中常见的一种现象是学生理解授课内容并不困难,但一接触到习题往往感到无从下手.理解课程内容与较好地完成习题之间存在着明显的差距,算法题完成的质量与基本的程序设计素质的培养是密切相关的。平时的练习较偏重于如何编写功能单一的“小”算法,涉及算法的习题较侧重于局部程序设计,即如何编好“小程序”。但仅有这方面的训练是不够的,还应多做一些上机实习。实习中的问题往往比平时的习题要复杂得多,也更接近于实际。一般来说,实习着眼于原理与应用的结合点,使学生学会如何把书本上学到的知识用于解决实际问题。因此,实验课是学生学习数据结构的重要环节,是将理论知识转化为实践的重要工具。br br 2实验课选题的基本要求br br 在数据结构的学习过程中,学生比较困扰的是理论不能和实践相结合,不知道学习数据结构能做什么,所以在课程讲述中除了要求学生上机实现基本算法,并完成一定数量的较大的典型的程序外,更应以大量实例提高学生解决实际问题的能力。问题具有应用背景,以利于引导学生针对具体的应用问题,选择合适的数据结构,有效地组织计算机存储,并编写出高质量的程序。br 例如某民航线路如图1所示,要求使用领接表存储这个图,分别输出按广度优先搜索算法和深度优先搜索算法对此图进行遍历所得到的结果(要求从顶点1开始遍历,在遍历过程中输出相应顶点对应的城市名称)。br br 图1 民航线路模拟系统br br struct EdgeNode {br int endvex;/* 相邻顶点字段 */br PEdgeNode nextedge;/* 链字段 */br };br typedef struct {br /*VexType vertex;*//* 顶点信息 */br EdgeList edgelist;/* 边表头指针 */br } VexNode;/* 顶点表中的结点 */br typedef struct {br int n;/* 图的顶点个数 */br VexNode vexs[MAXVEX];br } GraphList;br while ( !isEmptyQueue_seq(q) ) {br v1 = frontQueue_seq ( q ) ;br void bfs ( GraphList* g , Vertex v ) {br Vertex v1 , v2;br PSeqQueue q= createEmptyQueue_seq ( );br enQueue_seq ( q ,v ) ;br printf(%d ,v);br visited[v] = TRUE;br deQueue_seq ( q );br v2 = firstAdjacent ( g ,v1 );br while ( v2 != NON ) {br if ( visited[v2] == FALSE ) {br enQueue_seq ( q,v2 );br visited[v2] = TRUE ;br printf(%d ,v2); }br v2 = nextAdjacent ( g , v1 , v2 ) ; }br }br }br 这道综合实验题考查了学生对字符串数组、链表、栈、队列、图的遍历以及递归算法等知识点的理解和综合应用能力。题目要求输出的结果是各城市名称,所以需要建立一个字符数组存储各顶点所对应的城市名称,这样就涉及和强调了字符串这一知识点;使用邻接表存储图的各个顶点,涉及到链表这一知识点;递归算法、栈和队列的操作,则体现在图的遍历过程中。br 这道综合实验题的知识面覆盖了“数据结构”课程绝大部分的内容,充分体现了静态数据结构与动态数据结构的结合,具有较强的综合性。通过对综合实验题的练习,学生逐渐学会针对具体问题,自己选择合适的数据逻辑结构以及有效组织这些数据的存储结构,在实践中真正体会到“数据结构+算法=程序”这一重要思想。br br 3实习的步骤br br 虽然“数据结构”课程中实习题的复杂度远不如“真正的”软件,但为了培养学生科学严谨的工作方法和作风,应要求他们在实习过程中遵循以下几个实习步骤:br (1) 需求分析和抽象数据结构。充分地分析问题,指出问题完
文档评论(0)