| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 593 人关注过本帖
标题:[求助]约瑟夫问题遇到的问题!
只看楼主 加入收藏
飞在天上的鱼
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-11-6
收藏
 问题点数:0 回复次数:0 
[求助]约瑟夫问题遇到的问题!

我自己编的约瑟夫问题的解决方安有问题呢!大家帮我找一下!

约瑟夫问题是这样的:假设有n个人坐在圆桌周围,从第s个人开始报数,报到m的人出列;
然后继续再从下一个人开始报数报道m的时候出列直到所有的人都出列为止要求按出列先后顺序输出个人的信息.
#include<iostream>
#include"01.h"
using namespace std;
void main()
{
JosepChain J1;
cout<<"请输入由多少个人围成一个圈"<<endl;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{J1.insert(i, i);
}
cout<<"请输入有第几个人开始报数"<<endl;
int s;
cin>>s;
cout<<"请输入报到第几的人出列"<<endl;
int m;
cin>>m;
J1.Delete(n,s,m) ;
}


class JosepChain ;
class chainNode
{public:
friend class JosepChain;
private:
int data ;
chainNode * link;
};

class JosepChain
{private :
chainNode *frist;
public:
JosepChain();
~JosepChain();
JosepChain & insert(int k,int x);//插入函数
JosepChain & Delete(int n,int k,int m);//输出出列的人和删除节点!
};

JosepChain::JosepChain()
{ frist=new chainNode;
frist->link=frist;
frist->data=0 ;
}

JosepChain::~JosepChain()
{//删除释放节点空间
chainNode *p=frist;
if(p->link!=frist)
{p=p->link;
delete frist;
frist=p;
}
delete frist;
}
JosepChain & JosepChain::insert(int k,int x)
{ //在第k个位置上插入x
//如果存在一个节点这么插,存在多个节点这么插啊!
int index=1; //计数器*/
chainNode * y=new chainNode;
chainNode *p=frist;
y->data=x;
if(k==1)
{frist->data=x;
}
if(k==2)
{frist->link=y;
y->link=frist;
}
if(k>2)
{

while (index<k-1&& p->link!=frist)
{

p=p->link;
index++;


}
y->link=p->link ;
p->link=y;
}

return *this;
}
JosepChain & JosepChain::Delete(int n,int s,int m)
{ //由第s个数开始到第m个数取出
//每报数为m的位置输出此处的data的值
int index=1;
chainNode *p=frist,*q;
if(n<s)
cout<<"输入的开始号码大于人数"<<endl;


for(int i=1;i<s-1;i++)
{ p=p->link;
}
for(index=1;index<=n;index++)
{ for(int j=1;j<m-1;j++)
{
p=p->link;
}
cout<<p->data<<" ";
q=p->link;
p->link=q->link;
delete q;
}
//cout<<p->data<<endl ;
//delete p;

return *this;

}

搜索更多相关主题的帖子: 约瑟夫 
2006-03-27 23:28
快速回复:[求助]约瑟夫问题遇到的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023657 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved