北工大数据结构上机实验报告1_第1页
北工大数据结构上机实验报告1_第2页
北工大数据结构上机实验报告1_第3页
北工大数据结构上机实验报告1_第4页
北工大数据结构上机实验报告1_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一报告姓名:学号:完成日期:2015年4月7日题目:设有n个人坐在一个圆桌周围,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,如此反复直到所有的人全部出列为止。Josephus问题是:对于任意给定的n、s、m,求出按出列次序得到的n个人员的序列。试在计算机上模拟Josephus问题的求解工程。需求分析输入形式、输入值的范围:输入的值必须为正整数输出形式:输出为一组正整数程序功能:对于任意给定的n、s、m,求出按出列次序得到的n个人员的序列。测试数据:正确的输入:632正确的输出:462531错误的输入:632错误的输出:123456概要设计主程序流程:开始开始输入数据信息输入数据信息创建数组或链表,并将编号存入创建数组或链表,并将编号存入是否全部出列否是否全部出列是结束结束调试分析调试中并遇到的问题:运行结果少一个数解决方案:在while循环的限制条件中,是循环次数加1算法时空分析:O(n)用户使用说明运行程序后,用户按照提示顺序输入3个正整数,然后按回车可得到结果测试结果输入:632输出:462531源程序以顺序表实现:#include<iostream>usingnamespacestd;voidJJ(intn,ints,intm){int*a=newint[10000];inti;intcount=0;intt=0;for(i=0;i<n;i++){a[i]=i+1; }i=s-1; cout<<"出列次序为:";while(count<n-1){ if(a[i]!=0)t++;if(t==m){t=0;//记数归0cout<<a[i]<<"";//依次输出删除的编号a[i]=0;//给删除的数组赋0count++;//退出人数加1 } i++;if(i==n)i=0;//报数到末尾后i恢复为0} cout<<endl;}voidmain(){intn,s,m;cout<<"请输入总人数:"<<endl; cin>>n;cout<<"请输入开始报数的人员序号:"<<endl; cin>>s;cout<<"请输入出列人员的序号:"<<endl;cin>>m;JJ(n,s,m);}以链表实现:#include<iostream>usingnamespacestd;typedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;voidJJ(intn,ints,intm){LinkListp,r,list=NULL;inti;//建立一个循环链表for(i=0;i<n;i++){p=(LinkList)malloc(sizeof(LNode));p->data=i+1;//存放第i个结点的编号if(list==NULL)list=p;elser->next=p;r=p;}p->next=list;p=list;for(i=1;i<s;i++){r=p;//当m!=1,但s=1时如果没有这条语句,此时删除动作无法完成p=p->next;}//此时p指向第1个出发结点 cout<<"出列次序为:";while(p->next!=p){for(i=1;i<m;i++){r=p;p=p->next;}//p指向第m个结点,r指向第m-1个结点r->next=p->next;//删除第m个结点cout<<p->data<<"";deletep;p=r->next;}cout<<p->data; cout<<endl;}voidmain(){intn,s,m;cout<<"请输入总人数:"<<endl;scanf("%d",&n)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论