欢迎来到天天文库
浏览记录
ID:8838998
大小:59.00 KB
页数:9页
时间:2018-04-09
《数据结构实验指导书》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数据结构实验指导书上海交通大学电院数据结构课程组9目录1.关于实习步骤的要求和建议2.上机实习实习一链表实习二栈和队列实习三树和二叉树实习四查找实习五图实习六排序3.注意事项91.关于实习步骤的要求和建议从以往的教学事先实习的经验来看,在初学阶段执行严格的实习步骤规范(包括上机操作规范),机时利用率会大大提高,有助于养成良好的程序编制风格,培养严谨、科学、高效的工作方式。在以往的教学实践中,经常发现很多学生抱怨说,化了两个小时才找出一个错误,甚至一无所获。他们不明白造成这种情况的原因,正是他们自己。有的学生不屑于按实习步骤规范去做,甚至对于实习步骤的
2、要求和建议看都不看一遍,认为那是浪费时间,这是及其害的。实习步骤规范不但可以培养科学化的工作作风,而且还能有效地避免错误。具体的步骤机规范如下:1.问题分析与系统的结构设计:充分地分析和理解问题本身,弄清要求作什么,限制条件是什么。按照以数据结构为中心的原则划分模块,即定义数据结构及其在这些结构之上的操作,使得对数据结构的存取通过这些操作加以实现。在这个过程中,要综合考虑系统功能。要考虑系统结构清晰、合理、简单并且易于调试。最后写出每个子程序(过程或函数)的规格说明,列出它们之间的调用关系,可以使用调用关系图表示则更加清晰,这样便完成了系统结构设计。
3、2.详细设计和编码详细设计的目的是对子程序(过程或函数)的进一步求精。用IF、WHILE和赋值语句等,以及自然语言写出算法的框架。利用自然语言的目的是避免陷入细节。在编码是,可以对详细设计的结果进一步求精,用高级语言表示出来。程序的每一行最好不超过60个字符。每个子程序(或过程、函数)通常不要太长,以40行为宜。子程序(或过程、函数)包含的程序行数太多,易于造成理解的困难。控制IF、WHILE等语句的连续嵌套的深度。程序的目的性必须明确。对每一段程序完成的作用,除非常明显的除外(如:x=x+1;注释为x加1,没有什么意义),都应加以注释。这会对程序的
4、调试提供很多方便。另外,根据情况可以设立若干调试点,即输出若干信息,用于验证和你的设想是否一致。另外,对于输入输出语句,必须对它们的作用加以说明。否则,在调试程序时,无法了解系统需要输入说明,系统输出的又是什么。程序的书写,必须按照一定的规范,如保留字小写时涂黑,或者大写等等。具体的要求可参看软件工程中的有关规定。3.上机准备和静态检查上机准备:l高级语言文本l熟悉机器的用户手册,熟悉常用的命令。l准备调试的工具,考虑调试方案。如果机器上没有现成的调试工具可供利用,可以自己先设计一些以供使用。l静态检查自己用一组数据手动执行程序;或同同学一起阅读自己
5、的程序,以全面地了解该程序的逻辑。4.上机调试程序9自底向上,先调试底层模块,再调试上层模块。最后,整个程序进行联调。调试正确后将源程序和运行结果加以列印输出。1.实习报告的整理l需求及规格说明问题描述,求解的问题是什么。l设计:设计思想:存储结构、主要的算法思想。设计表示:子程序(过程或函数)的规格说明,通过调用关系图表示它们之间的调用关系。实现注释:详细设计表示:主要算法的框架。l用户手册:使用说明。l调试报告:问题是如何解决的,讨论与分析、改进设想、经验与体会、时空复杂度等。l附录源程序清单和结果:源程序必须有注释,以及必要的测试数据和运行结果
6、数据。提倡用英文描述。l实验报告要求:在程序开发过程中,逐步形成各种必要的文档及资料。可以写在实验报告纸上,或以电子文档的形式进行书写。1.上机实习以下的实习题目配合课程的进度,请同学们自己务必完成。为了锻炼自己的应用各种不同的数据结构的能力,尽可能的多作一些题目是非常必要的。在完成各种不同题目的过程中,对各种算法的时、空复杂性的分析,将帮助您在更高的角度解决各种应用问题。实习一链表1、设有一个双链表,每个结点中除有PRIOR,NEXT及DATA(可设为正整数)三个域之外,还有一个专门记录访问该结点次数的数据域FREQ,其值在初始化时为零。每当在链表
7、中进行一次SEACH〔L,KEY〕时,则数据域DATA之值等于KEY的结点,其FREQ域之值将加一。并使该双链表中结点按FREQ之值的递减顺序排列,FREQ值越大的结点越靠近散双链表的头结点。请编写符合上述要求的SEACH(L,KEY)程9序。2、请写出计算两个以单链接表表示的多项式相乘的程序。3、在计算机上先输入一串正整数的序列。请编写一个程序,首先用链接表存储该序列。然后执行删除操作,即先从链表中找出最小的结点,删除它。然后再在剩余的链表中,找出最小的结点,再删除之。直至表空为止。4、已知两个单链表A和B分别表示两个集合,其元素递增排列。请编写程
8、序求集合A和B的交集C=AÇB,要求单链表C按其元素递增排列,并利用原表(即表A和表B)的结点空间存放表C。
此文档下载收益归作者所有