《数据结构实验报告1-线性结构》由会员分享,可在线阅读,更多相关《数据结构实验报告1-线性结构(6页珍藏版)》请在金锄头文库上搜索。
1、第 1 页 共 7 页广东金融学院实验报告课程名称:数据结构实验编号 及实验名称实验一:线性结构实验系 别计算机科学与 技术系姓 名学 号班 级实验地点新电 405实验日期2016.9.22-2016.11.16实验时数8指导教师刘秋莲同组其他成员成 绩优一、实验目的及要求充分理解线性表的顺序存储方式和链式存储方式,掌握顺序表和单链表的各种基本运算的实现。充分理解循环单链表和栈的工作原理,并实现简单应用。二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等) 使用微机、Java jdk1.6.0 开发环境第 2 页 共 7 页三、实验内容及步骤(包含简要的实验步骤流程)(一)编写一
2、个程序,实现顺序表的各种基本运算,并在此基础上设计一个测试程序,完成如下功能:(1)根据输入顺序表的长度 n 和表中各元素的值,建立一个顺序表,并输出顺序表中各元素的值。(2)在顺序表的第 i(0in)个元素之前插入一个值为 x 的元素,并输出插入后的顺序表中各元素的值。(3)删除顺序表中第 i(0in-1)个元素,并输出删除之后的顺序表中各元素的值。(4)在顺序表中查找值为 x 的元素初次出现的位置。如果查找成功,则返回该元素在顺序表中的位序号;如果查找失败,则提示顺序表中不包含此元素。(5)删除顺序表中相同的元素。(二)编写一个程序,实现单链表的各种基本运算,并在此基础上设计一个主程序,完
3、成如下功能:(1)根据输入指定个数的表元素值,采用头插法建立一个单链表,并输出单链表中各元素的值,同时观察输入内容与输出内容是否一致。(2)在单链表的第 i 个元素之前插入一个值为 x 的新元素,并输出插入后的单链表中各元素的值。(3)删除单链表中第 i 个元素,并输出删除后的单链表中各元素的值。(4)在单链表中查找第 i 个元素,如果查找成功,则输出该元素的值;否则,输出该元素不存在。(5)在单链表中查找值为 y 的元素,如果查找成功,则输出该元素的位序号(0n-1) ;否则,输出该元素不存在。(三) 约瑟夫问题:设编号为 1,2,n(n0)的 n 个人按顺时针方向围坐一个圆圈,从第 1 个
4、人开始顺时针方向自 1 起顺序报数,报数到 m 为止,报数为 m 的人出列,然后从他的下一个人开始重新报数,报数为 m 的人又出列,直到所有的人全部出列为止。设计算法求 n 个人出圈的次序。(选做)(四)汉诺塔问题。用递归分解的方法求解 n 阶汉诺塔问题,要求:(1)n 由键盘输入;(2)顺序输出每一次的移动操作。(3)出圈人员的编号依次输出。第 3 页 共 7 页三、实验结果(包括程序或图表、结论陈述、数据记录及分析等,可附页)见附录第 4 页 共 7 页四、实验总结(包括心得体会、问题回答及实验改进意见,可附页)经过对顺序表和单链表的编程,我对 java 的理解有了更深一层的体会,也更加明
5、白的数据本身之间的逻辑关系,对于数据的处理也有了更深一层的体会。在认识了栈和队列的数学结构后,我对于 java 中函数的递归和调用,操作系统实现对各种进程的管理的本质都有了更深的体会,明白到他们都是用栈或队列来实现这些功能的。在做汉诺塔问题是会因为用来计数的变量是全局变量,如果在执行了一次方法之后没有把它重新设置为 0,会导致计数累计下去,从而得不到正确的结果。五、教师评语 1 完成所有规定的实验内容,实验步骤正确,结果正确; 2 完成绝大部份规定的实验内容,实验步骤正确,结果正确; 3 完成绝大部份规定的实验内容,实验步骤基本正确,结果基本正确; 4 基本完成规定的实验内容,实验步骤基本正确,所完成的结果基本正确; 5 未能很好地完成规定的实验内容或实验步骤不正确或结果不正确。评定等级为:优秀、良好、中等、及格、不及格教师签名:刘秋莲2016 年 11 月 20 日第 5 页 共 7 页附录实验一结果第 6 页 共 7 页实验二结果实验三结果第 7 页 共 7 页实验四结果