- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程中栈和队列实验教学方案设计
摘要:数据结构是计算机专业的核心课程,对培养计算机专业设计与创新型人才起着关键作用。该课程是理论性和实践性很强的一门课程。实验教学是其教学中的一个重要环节。栈和队列是两种非常重要的线性结构,它们有很多实际应用。为了帮助学生充分理解、掌握和灵活运用这两种数据结构,本文给出一种栈和队列的实验教学方案。
关键词:数据结构;实验教学方案;栈;队列
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)24-0274-03
一、引言
实验教学是学生从学习理论知识到走向社会的桥梁,对提高学生综合素质、培养学生创新精神和实践能力有着理论教学不可替代的特殊作用[1]。特别是主干课程的实践教学,它是应用型人才培养中的关键环节[2]。课内实验是指与理论课相捆绑的实践教学,即嵌入到专业基础课或专业课内的实验实践教学[3]。它是与理论教学并行实施的实践教学环节,能够帮助学生深入理解和掌握所学的专业知识。
数据结构是随着处理对象的复杂性不断增加而发展起来的一门课程,作为计算机专业的核心课程,在专业人才培养链条中占有举足轻重的地位[4-7]。数据结构主要研究数据在抽象视图和实现视图中的表示和处理方法[8,9]。抽象视图涉及的是数据结构的理论性部分,实现视图主要体现的是数据结构的实践性,理论指导实践,实践支撑理论,因此设计有助于课堂理论教学的实验教学方案是非常有必要的[10]。它可以解决学生对所学知识缺乏必要感性认识的问题,将知识传授、技能训练、能力培养融于一体,使所学理论知识在实验中得到验证和应用[11]。
栈和队列是两种非常重要的数据结构,它们有非常多的实际应用并且是实现其他复杂结构的基础,因此为了帮助学生掌握并灵活运用这两种结构,本文给出一种栈和队列的实验教学方案。该方案的设计思路也可以应用于其他数据结构或课程的实验教学方案的设计。
二、认识两种重要的数据结构――栈和队列
栈和队列是两种运算受限的线性表,它们的插入和删除运算都被限制在表的端点处进行,只是具体的受限规则不一样[12,13]。
(一)学习对象
栈(stack)是运算受限的线性表,它被限制在表的一端进行插入和删除操作。能进行插入和删除的一端称为栈顶,另一端称为栈底。正是由于它插入和删除操作上的限制使得它具有了一种独特的“后进先出”(LIFO)的特性。栈的LIFO特性使得它具有非常多的应用,如:符号平衡问题、中缀表达式转换为后缀表达式问题、后缀表达式的计算问题、函数调用的实现(包括递归函数的实现)、在股票市场中查找划分、Web浏览器中的网页访问历史、文本编辑器中的撤销序列等。此外,栈还是其他很多算法的辅助数据结构和其他数据结构的组成部分。
队列(queue)也是一种运算受限的线性表,它被限制在表的一端进行插入操作,在表的另一端进行删除操作。进行插入操作的一端称为队尾,进行删除操作的一端称为队首。正是由于它插入和删除操作上的限制使得它具有了一种独特的“先进先出”(FIFO)的特性。队列的FIFO特性使得它具有非常多的应用,如:操作系统中的作业调度、异步数据转换、多道程序设计等。此外,队列还是其他很多算法的辅助数据结构和其他数据结构的组成部分。
(二)学习目标
学习这两种重要的线性结构需要学生重点消化的知识点有:(1)栈/队列的概念、类型定义及基本操作的定义和实现;(2)栈/队列的结构特性;(3)栈/队列的灵活应用。
为了配合栈和队列的理论教学,帮助学生理解和掌握上述知识点,我们需要精心设计栈和队列的实验教学方案。
三、栈和队列的实验教学方案设计
(一)实验题目设计
根据栈和队列的学习目标和遵循循序渐进的学习和教学原则,实验题目被分为以下三个层次:基础型实验题目、设计型实验题目和加强理解型实验题目。
所谓基础型实验是指围绕课程讲授的栈/队列的物理实现和其基本运算的实现来设置的实验题目。设计基础型实验的目的是,通过实践的方式验证课堂上讲授的重要知识点,给学生切身的感受,摆脱“纸上谈兵”的感觉,这种立体的感受有助于学生深入理解和掌握这些知识点。设计型实验要求学生能分别运用栈/队列解决简单应用问题。这类实验题目主要是用来引导和加强学生对栈/队列的灵活运用。设计加强理解型实验的目的是强化学生对栈和队列的结构特性的理解和体会。为了达到这个目的,加强理解型实验题目的设计思路有两个方面:(1)引导学生去思考并解决这样两个问题:能否利用栈的LIFO特性来实现队列的FIFO特性?能否利用队列的FIFO特性来实现栈的LIFO特性?(2)让学生实现其他更为复杂的栈和队列。
在栈的理论教学过程中可以开设栈的基础型实验,在栈的理
文档评论(0)