欢迎来到天天文库
浏览记录
ID:32177509
大小:150.50 KB
页数:9页
时间:2019-02-01
《顺序表实现约瑟夫环的问题c语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机科学与工程学院计算机科学与工程学院《算法与数据结构》试验报告[一]专业班级10级计算机工程02试验地点计算机大楼计工教研室学生学号1005080222指导教师蔡琼学生姓名肖宇博试验时间2012-2-29试验项目算法与数据结构试验类别基础性()设计性()综合性(√)其它()试验目的及要求(1)掌握用VC++上机调试线性表的基本方法;(2)掌握顺序表的存储结构以及基本运算的实现。成绩评定表类别评分标准分值得分合计上机表现积极出勤、遵守纪律主动完成设计任务30分程序与报告程序代码规范、功能正确报告详实完整、体现收获
2、70分备注:评阅教师:日期:年月日9《算法与数据结构》试验报告计算机科学与工程学院试验内容一、实验目的和要求1、实验目的:(1)掌握用VC++上机调试线性表的基本方法;(2)掌握顺序表的存储结构以及基本运算的实现。2、实验内容约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数。从第一个人开始顺时针方向自1起顺序报数,报到m时停止并且报m的人出列,再从他的下一个人开始重新从1报数,报到m时停止并且报m的人出列。如此下去,直到所有人全部出列为止。要求设计一个程序模拟此过
3、程,对任意给定的m和n,求出出列编号序列。3、实验要求:用顺序表实现。二、设计分析根据实验要求,采用顺序表来完成本次实验。实验中定义了两个顺序表,一个用来存储n个人的序号,另一个用来存储n个人的出队顺序及序号。程序中充分考虑了如果出队的元素大于队列的元素个数时应该有的情况,如果出现这样的错误就提示!否则继续出队!三、源程序代码#include#include#defineMAXSIZE10//宏替换最大值typedefstruct{intdata[MAXSIZE];intlen
4、gth;}Sqlist;voidCreatList(Sqlist*&L,inta[],intn)//创建顺序表{L=(Sqlist*)malloc(sizeof(Sqlist));for(inti=0;idata[i]=a[i];}L->length=n;}voidInitList(Sqlist*&L)//初始化顺序表{9《算法与数据结构》试验报告计算机科学与工程学院L=(Sqlist*)malloc(sizeof(Sqlist));L->length=0;}voidDestoryList(S
5、qlist*&L)//释放顺序表空间{free(L);}voidjosephus(Sqlist*&L)//约瑟夫环的核心代码{intt=0;intm=0;printf("请输入数到几个人出来");printf("");scanf("%d",&m);if(m>L->length){printf("没有这么多人呀!╮(╯_╰)╭");}else{printf("出列顺序为:");for(intq=L->length;q>=1;q--){t=(t+m-1)%q;printf("");printf("t%dt"
6、,L->data[t]);for(intj=t+1;j<=q-1;j++)L->data[j-1]=L->data[j];}printf("");}}voidmain(){Sqlist*s;InitList(s);inta[MAXSIZE];intn=0;printf("请键入要输入几个数");printf("");scanf("%d",&n);for(inti=0;i7、;DestoryList(s);printf("");}四、测试用例(尽量覆盖所有分支)1.当输入1,2,3,4。。。。。。n的这些数字范围以内的话,可以得到正确的结果如图:2.当输入的n比较大的时候的情况如图:9《算法与数据结构》试验报告计算机科学与工程学院3.当输入序列少,出对数大时:4.当输入要出列的元素大于队列里的元素,这将会提示错误如图:9《算法与数据结构》试验报告计算机科学与工程学院5.当你的输入出队的序列数有误时将会提示错误6.当你的要输入的数大于定义的最大值时提示错误如图:9《算法与数据结构》试8、验报告计算机科学与工程学院7.当你的要输入的数小于定义的最大值时提示错误如图:9《算法与数据结构》试验报告计算机科学与工程学院五、实验总结先后学习了C/C++,对编程语言基本上有一些了解,但在数据结构试验程序设计过程中还是学到了很多。经过两天的设计,在不断翻阅以前资料的情况下,有针对性的复习了C/C++中指针、循环的相关理论知识和vc6.0的基础知识和应用技
7、;DestoryList(s);printf("");}四、测试用例(尽量覆盖所有分支)1.当输入1,2,3,4。。。。。。n的这些数字范围以内的话,可以得到正确的结果如图:2.当输入的n比较大的时候的情况如图:9《算法与数据结构》试验报告计算机科学与工程学院3.当输入序列少,出对数大时:4.当输入要出列的元素大于队列里的元素,这将会提示错误如图:9《算法与数据结构》试验报告计算机科学与工程学院5.当你的输入出队的序列数有误时将会提示错误6.当你的要输入的数大于定义的最大值时提示错误如图:9《算法与数据结构》试
8、验报告计算机科学与工程学院7.当你的要输入的数小于定义的最大值时提示错误如图:9《算法与数据结构》试验报告计算机科学与工程学院五、实验总结先后学习了C/C++,对编程语言基本上有一些了解,但在数据结构试验程序设计过程中还是学到了很多。经过两天的设计,在不断翻阅以前资料的情况下,有针对性的复习了C/C++中指针、循环的相关理论知识和vc6.0的基础知识和应用技
此文档下载收益归作者所有