- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构实验指导》《数据结构实验指导》
目 录
《数据结构》实验目的与要求 1
实验一 线性表基本操作 4
实验二 非循环单链表的存储与操作 6
实验三 栈的存储与操作 9
实验四 队列的存储与操作 12
实验五 二叉树的建立和遍历 15
实验六 哈夫曼树的建立与操作 18
实验七 图的基本操作 23
实验八 内部排序的方法 30
附录: 31
实验一 参考程序 31
实验七 参考程序 35
《数据结构》实验目的与要求
一、实验目的
数据结构是信息与计算科学专业中一门重要的专业基础课程。当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打下了厚实的知识基础,同时也提供了必要的技能训练。因此,数据结构课程在计算机应用专业中具有举足轻重的作用。
本课程的任务是:通过实践,学生对常用数据结构的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。
二、实验要求
1.准备好上机所需要的程序,并经人工检查后才能上机,以提高上机效率。对程序中自己有疑问的地方应作记号,以便在上机时给予注意。不得抄别人所编的程序。
2.上机输入并调试所编的程序。
3.上机结束后,提交实验报告,实验报告应包括以下内容:
(1)题目;
(2)算法的基本思想描述;
(3)算法分析;
(4)主要数据结构描述;
(5)程序流程图;
(6)程序清单;
(7)运行的结果;
(8)对运行情况所作的分析以及本次调试程序所取的经验。如果程序未通过,应分析其原因。
三、实验步骤
1.问题分析和任务的定义
明确问题要求做什么,限制做什么(本步强调做什么,而不是怎么做)。对问题的描述应避开算法和所涉及的数据类型,而是所完成的任务做出明确的回答。如输入数据的类型、值的范围以及输入的形式;输出数据的类型、值得范围及输出的形式;这异步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式的输入数据。
数据类型和系统设计
在设计这一步骤中分为逻辑设计和详细设计两步实现。逻辑设计指的是,为问题的描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统的功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据的封装,基本操作的规格说明尽可能的明确和具体。作为逻辑设计的结果。应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的规格说明),各个主要模块的算法,并画出模块之间的调用关系图。详细设计的结果是对数据结构和基本操作的规格说明做出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范用类C语言写出函数形式的算法框架。
编码实现和静态检查
上机准备和上机调试
总结和整理实习报告
四、实验总结
对实验中发现的问题,调试中的问题分析、解决方法,对算法的改进意见、建议、收获、体会等。
通过上机实验加深对课程内容的理解,增加感性认识,提高软件设计、编写及调试程序的能力。
要求所编的程序能正确运行,并提交实验报告。实验报告的基本要求为:
实验报告参考规范:
实验题目
班级 姓名 学号 日期
需求分析:陈述程序设计的任务,强调程序要做什么,明确规定:
输入的形式和输出值的范围;
输出的形式;
程序所能达到的功能;
测试数据:包括正确的输入输出结果和错误的输入及输出结果。
概要设计:说明用到的数据结构定义、主程序的流程及各程序模块之间的调用关系。
详细设计:提交带注释的源程序或者用伪代码写出每个操作所涉及的算法。
调试分析:
调试过程中所遇到的问题及解决方法;
算法的时空分析;
经验与体会。
用户使用说明:说明如何使用你的程序,详细列出每一步操作步骤。
测试结果:列出对于给定的输入所产生的输出结果。若有可能,测试随输入规模的增长所用算法的实际运行时间的变化。
实验一 线性表基本操作
一、实验目的
1.? 熟悉C语言的上机环境,掌握C语言的基本结构。
2.? 会定义线性表的顺序存储结构。
3.? 熟悉对顺序表的一些基本操作和具体的函数定义。
二、实验题目
线性表基本操作的实现,包括插入、删除、遍历等基本操作。
三、算法思想(插入、删除为例)
当我们要在线性表的顺序存储结构上的第i个位置上插入一个元素时,必须先将线性表的第i个元素之后的所有元素依次后移一个位置,以便腾空一个位置,再把新元素插入到该位置。若要删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置。
四、实验内容
该程序的功能是对元素类型为
文档评论(0)