欢迎来到天天文库
浏览记录
ID:5894453
大小:132.50 KB
页数:11页
时间:2017-12-27
《兰州大学数据结构实验 约瑟夫问题实验报告(数组)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、兰州大学信息科学与工程学院数据结构实验报告课程名称数据结构实验名称数据结构试验专业班级姓名学号实验日期第11周星期日节实验地点贺兰堂2012—2013学年度第一学期一、实验目的1、用数组来实现约瑟夫问题二、实验内容1、试分别用线性表的向量存储结构和数组存储结构来实现约瑟夫(Josephu)问题。约瑟夫问题如下:设有n个人围坐圆桌周围。从某个位置上的人开始从1报数,数到m的人便出列,下一个人(第m+1个)又从1报数开始,数到m的人便是第2个出列的人,依次类推,直到最后一个人出列为止,这样就可以得到一个人员排列的新
2、次序。例如,n=8,m=4,从第1个人数起,得到的新次序为48521376.三、实验环境1、硬件配置:Pentium(R)Dual-Core9CUPE6500@2.93GHz,1.96的内存2、软件环境:MicrosoftWindowsXPProfessionalServicePack3,MicrosoftVisualC++6.0四、需求分析1、输入的形式和输入值的范围:根据题目要求与提示输入数据的总数,间隔数和开始计数的位置2、输出的形式:输出每个挑选的数据3、程序所能达到的功能:从开始计数的位置起,每隔间隔
3、数,就把该位置的数字输出,同时此数被释放掉,然后从继续此操作,若到数据结束位置,则重新开始进行。程序结束的条件是所有的数据输出,释放掉。4、测试数据:输入一个链表,首先输入数据总数,然后输入间隔数,再输入起始位置,若起始位置大于数据总数,会提示错误,要求重新输入起始位置,直至起始位置不大于总数。然后开始输入数据,数据以空格隔开,最后输出结构。如:输入数据总数8,间隔数4,起始位置1,输入数据12345678输出的链表为:48521376五、概要设计为了实现上述操作,应以数组结构。1、本程序包含二个模块:(1)主
4、程序模块;在这个主函数中通过一个循环实现约瑟夫函数3、流程图输入数据的总数num间隔数count起始位置start当Start>num输入总数num输入起始位置start当I5、,k,count,num,start;printf("请输入总数:");scanf("%d",&num);printf("请输入间隔数:");scanf("%d",&count);printf("请输入起始位置:");scanf("%d",&start);printf("");while(start>num){printf("请重新输入:");printf("请输入总数:");scanf("%d",&num);printf("请输入起始位置:");scanf("%d",&start);}printf("6、请输入数据:");for(i=0;i7、当b数组有了a数据全部数据时,结束循环break;}printf("标准顺序为:");for(k=0;k8、scanf("%d",&start);printf("");while(start>num){printf("请重新输入:");printf("请输入总数:");scanf("%d",&num);printf("请输入起始位置:");scanf("%d",&start);}printf("请输入数据:");for(i=0;i
5、,k,count,num,start;printf("请输入总数:");scanf("%d",&num);printf("请输入间隔数:");scanf("%d",&count);printf("请输入起始位置:");scanf("%d",&start);printf("");while(start>num){printf("请重新输入:");printf("请输入总数:");scanf("%d",&num);printf("请输入起始位置:");scanf("%d",&start);}printf("
6、请输入数据:");for(i=0;i7、当b数组有了a数据全部数据时,结束循环break;}printf("标准顺序为:");for(k=0;k8、scanf("%d",&start);printf("");while(start>num){printf("请重新输入:");printf("请输入总数:");scanf("%d",&num);printf("请输入起始位置:");scanf("%d",&start);}printf("请输入数据:");for(i=0;i
7、当b数组有了a数据全部数据时,结束循环break;}printf("标准顺序为:");for(k=0;k8、scanf("%d",&start);printf("");while(start>num){printf("请重新输入:");printf("请输入总数:");scanf("%d",&num);printf("请输入起始位置:");scanf("%d",&start);}printf("请输入数据:");for(i=0;i
8、scanf("%d",&start);printf("");while(start>num){printf("请重新输入:");printf("请输入总数:");scanf("%d",&num);printf("请输入起始位置:");scanf("%d",&start);}printf("请输入数据:");for(i=0;i
此文档下载收益归作者所有