问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求用循环队列解决约瑟夫环问题的C语言代码,急,速度!!!

发布网友 发布时间:2022-04-19 03:22

我来回答

4个回答

热心网友 时间:2022-04-19 04:52

他们都是用链表做的。。我没用链表做。。。很简单的写了一个。。。

#include <iostream.h>

void Fmade(int x, int y, int z);

void main()

{

 int a, b, c;

 //t i, j, k;

 //t aa[100], b[100];

 cout<<"请输入总人数:";

 cin>>a;

 cout<<endl<<"请输入开始位子:";

 cin>>b;

 cout<<endl<<"请输入步长:";

 cin>>c;

 Fmade(a, b, c);

}

void Fmade(int x, int y, int z)

{

 int i, j=0, k=0;

 int aa[100], bb[100];

 int start;

 aa[0]=0;

 

 for(i=1; i<=x; i++)

 {

  aa[i]=i;

 }

 start=y;

 while(j < x)

 {

  while(start <= x)

  {

   if(aa[start] !=0)

   {

       k++;

   }

      if(k == z)

   {

       bb[j]=aa[start];

       aa[start]=0;

       j++;

       k=0;

   }

   start++;

  }

     start=1;

 }

 cout<<"出列顺序为:";

    for(i=0; i<x; i++)

 {

  cout<<bb[i]<<"   ";

 }

}

说明下:因为这个数组只定义了100个字节。其中第一字节没有用。。所以只能计算99以内的出列。。。包括99,如果需要扩大计算范围,只需要扩大数组长度就行了。。。也就Fmade函数的定义。。。

最够插入运算的答案的图片:

热心网友 时间:2022-04-19 06:10

他们都是用链表做的。。我没用链表做。。。很简单的写了一个。。。
#include <iostream.h>
void Fmade(int x, int y, int z);
void main()
{
 int a, b, c;
 //t i, j, k;
 //t aa[100], b[100];
 cout<<"请输入总人数:";
 cin>>a;
 cout<<endl<<"请输入开始位子:";
 cin>>b;
 cout<<endl<<"请输入步长:";
 cin>>c;
 Fmade(a, b, c);
}
void Fmade(int x, int y, int z)
{
 int i, j=0, k=0;
 int aa[100], bb[100];
 int start;
 aa[0]=0;
 
 for(i=1; i<=x; i++)
 {
  aa[i]=i;
 }
 start=y;
 while(j < x)
 {
  while(start <= x)
  {
   if(aa[start] !=0)
   {
       k++;
   }
      if(k == z)
   {
       bb[j]=aa[start];
       aa[start]=0;
       j++;
       k=0;
   }
   start++;
  }
     start=1;
 }
 cout<<"出列顺序为:";
    for(i=0; i<x; i++)
 {
  cout<<bb[i]<<"   ";
 }
}
说明下:因为这个数组只定义了100个字节。其中第一字节没有用。。所以只能计算99以内的出列。。。包括99,如果需要扩大计算范围,只需要扩大数组长度就行了。。。也就Fmade函数的定义。。。
最够插入运算的答案的图片:

热心网友 时间:2022-04-19 07:44

他们都是用
链表
做的。。我没用链表做。。。很简单的写了一个。。。
#include <iostream.h>
void Fmade(int x, int y, int z);
void main()
{
int a, b, c;
//t i, j, k;
//t aa[100], b[100];
cout<<"请输入总人数:";
cin>>a;
cout<<endl<<"请输入开始位子:";
cin>>b;
cout<<endl<<"请输入步长:";
cin>>c;
Fmade(a, b, c);
}
void Fmade(int x, int y, int z)
{
int i, j=0, k=0;
int aa[100], bb[100];
int start;
aa[0]=0;

for(i=1; i<=x; i++)
{
aa[i]=i;
}
start=y;
while(j < x)
{
while(start <= x)
{
if(aa[start] !=0)
{
k++;
}
if(k == z)
{
bb[j]=aa[start];
aa[start]=0;
j++;
k=0;
}
start++;
}
start=1;
}
cout<<"出列顺序为:";
for(i=0; i<x; i++)
{
cout<<bb[i]<<" ";
}
}
说明下:因为这个数组只定义了100个字节。其中第一字节没有用。。所以只能计算99以内的出列。。。包括99,如果需要扩大计算范围,只需要扩大数组长度就行了。。。也就Fmade函数的定义。。。
最够插入运算的答案的图片:

热心网友 时间:2022-04-19 09:36

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

typedef struct node{
int data;
struct node *next;
} node;

node *init(int n) /*创建包含从1到n结点的循环链表*/
{
int i;
node *a,*b,*rt=NULL;

for (i = 0,a=rt=malloc(sizeof(node)); i<n; i++) {
if (!i) {
a->data=1;
a->next=NULL;
}
else {
b=malloc(sizeof(node));
b->next=NULL;
b->data=i+1;
a->next=b;
a=b;
}
}
a->next=rt;
return rt;
}
void prt(node *a,int b,int n) /*从第b个人开始数,数到n者出列*/
{
node *p=a,*fr=a,*de;
int i;

--b;
while (b--)
p=p->next ;
while (fr->next!=p)
fr=fr->next ;
while (p->next!=p)
{
i=n-1;
while (p->next!=p&&i--) {

p=p->next;
fr=fr->next ;

}
printf("%d\t",p->data);
de=p ;
fr->next=fr->next->next;

p=p->next;
free(de);

}
printf("%d\n",p->data );
free(p);
}
int main(void) /*测试*/
{

node *list=init(7);/*共有7个人*/
prt(list,3,2); /*从第3个人开始数,数到2者出列*/

return 0;
}
//---------------------------------------------------------------------------
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 有人说淘宝店铺的商品价格最好不要改变,会改变权重,把价格设的高,然后用打折软件打折,有道理吗?谢谢 天()地() 中国十大富豪都是什么学历? 天()地()?///、、、 淘宝网上相同的东西价钱不一样,怎么分辨 什么是模拟填报志愿? 注意 是模拟!!! 梦魂不到关山难,天长路远魂飞苦!请问是什么意思?可以用来形容哪种生肖???求解!! 新浪高考模拟志愿填报系统怎么用 36种动物诗的谜底是什么,天长地远魂飞苦,梦魂不到关山难,秋天蟋蟀常悲鸣,声声出自金井阑 淘宝同一类目下店铺里的宝贝价格差距很大有什么影响吗?对搜索排名降权什么的有影响吗? 天长地久代表什么动物 什么动物头脑简单枝发达,好吃懒做就是它,天长地远取远 天长地远取经苦指的什么生肖 天长地远用十二生肖怎么形容 天长地远取经苦,猜一生肖 f4 2006演唱会迅雷下载 你tube是什么 tube多多少a10&#xFFFD;0&#xFFFD;0%图中甲是20%是35%是40% 闲鱼为什么用手机流量就打不开 华为mate9闲鱼头条等等很多软件返回主菜单后不久就会自动退出怎么办? 中国高校富豪榜 《苦难辉煌》TXT全文,哪位有的话请发邮箱:cheguevara19880404@126.com 中国前十富豪有哪个说研究生的? 天长地远还有形,父母有情却无边!什么意思 小学三年级快乐端午的作文怎么写400字 中国亿万富豪人数达到了373位,他们的学历是什么? 2015年中国排名前100名的富豪有多少是大学毕业的 中国富豪学历最小的是谁? 天( )地( )( )天( )地 apple store id 密码怎么找回 中国富豪名单有那些人 中国富豪都毕业什么学校 天什么地什么 中国的富豪榜平均学历是小学。真的吗 中国内地的哪些富豪,是不是都是文化水平很高啊,也都上过大学? 福布斯中国富豪榜中有低学历的吗? 成语,天( )地( ) 中国富豪有多少大学生 请问现在中国富豪学历低的人多还是学历高的人多? 美人如花隔昨端,上有青冥之长天,下有绿水之波澜,全诗是什么,这首诗想表达什么?