资源描述:
《武汉纺织大学数据结构实验报告1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、武汉纺织大学《数据结构》实验报告班级:]2级专业_班姓名:序号:_实验时间:2014年4月日指导教师:宋泽源实验一:线性结构的基本操作一、实验目的:1、熟悉Java上机环境,掌握Java语言编程方法,熟练运用Java语言实现数据结构设计和算法设计。2、掌握线性表的顺序存储结构和链式存储结构的定义与基本操作,并能用Java语言实现线性表基本功能。3、掌握栈、队列的存储结构与基本操作,并能利用该结构编写算法解决实际问题。二、实验内容:1、编写一个Java语言程序,利用线性表实现约瑟夫环问题,参考书本程序示例【例2.1】,完善该程序并运行。实验
2、步骤:①、在Java编辑环境中新建程序,根据【例2.1】输入完整程序内容,并保存和编译;②、运行程序,输入约瑟夫环长度number^起始位置start、计数值distance;③、依次输入约瑟夫环中number个数据元素;④、输出约瑟夫环执行过程。2、编写一个程序,利用栈解决递归问题,实现n阶Hanoi塔问题。实验步骤:①、在Java编辑环境中新建程序,输入n阶Hanoi塔程序内容,并保存和编译;②、运行程序,输入盘子数目no③、输出n阶Hanoi塔问题解决过程。参考程序如下:importjaautil.Searrner;publicc
3、lassMethodOfHanoi{publicstaticvoidmain(String[]args){System,out.printin(“请输入盘子数目:”);Scannerscan=newScanner(System,in);//输入盘子数目intnumber=scan.nextint();hanoi(number,"A',,(Cf);//调用hanoi方法move(a,c);}else{//递归调用//递归调用//移动过程方法hemoi(num~l,a,c,b);move(a,c);hemoi(num~l,b,a,c);pub
4、licstaticvoidmove(chara,charc)System,out.printin(,z从〃+a+〃移到〃+c);}}3、编写一个程序,利用Java语言建立一个空队列,如果输入奇数,则奇数入队列;如果输入偶数,则队列中的第一个元素出队列;如果输入0,则退出程序。实验步骤:①、在Java编辑环境中新建程序,输入程序内容,并保存和编译;②、运行程序,输入数据并进行相应队列操作。③、输出每次输入数据后的队列结果。三、操作步骤:1.代码:importjava.util.ArrayList;importjava•ut•List;pub
5、licclassYSfh{publicYSfh(intnumber,intstart,intdistance){Listlist=newArrayList(number);for(inti=0;i
6、1){i=(i+distance-1)%list.size();System,out.print(”册lj除”+list.remove(i).toString()+nz,f);System.out.print(list•toString());}System.out.print(”被赦免者是”+list•get(0).toString());}publicstaticvoidmain(Stringargs[]){newYSfh(5,0,2);}}运行结果:2.代码:importjava•util•Scanner;publicclassMe
7、thodOfHanoi{publicstaticvoidmain(String[]args){System,out.printin("请输入盘子数目:”);Scannerscan=newScanner(System,in);//输入盘了数目intnumber=scan•nextint();hanoi(number,"A'JB'JC');}publicstaticvoidhanoi(intnum,chara,charb,charc){if(num==l)//只有一个盘了,直接移动{move(a,c);}else{hanoi(num-1,a,
8、c,b);//递归调用//递归调用move(a,c);hanoi(num-1,b,a,c);publicstaticvoidmove(chara,charc){System,out・print