首页 > 学院 > 开发设计 > 正文

JOSEPH环

2019-11-17 05:39:37
字体:
来源:转载
供稿:网友

  #include<stdio.h>
typedef strUCt Node
{
 int number;
 int cipher;
 struct Node *next;
}node,*hu;
hu H;//定义头结点为H;
init(int n)
{
  int i;
  int cipher;
  hu L;
  if(n>=1)
  {
    scanf("%d",&cipher);
    H=(hu)malloc(sizeof(node));//生成头结点;
    H->number=1;
    H->cipher=cipher;
    H->next=H;
    for(i=1;i<n;i++)
    {
      scanf("%d",&cipher);
      L=(hu)malloc(sizeof(node));//生成副结点;
      L->number=i+1;
      L->cipher=cipher;
      L->next=H->next;
      H->next=L;
      H=L;
    }
    H=H->next;//循环单链表的生成;
  }
  else
    PRintf("The N's value that you inputted is invalid!");
}
Joseph(int m,hu h)//进行程序的循环,使顺序出列;
{
  int i;
  hu l;
  l==h;
  i=1;
  while(i!=m)
  {
    i=i+1;
    l=h;
    h=h->next;
  }
  printf("%3d",h->number);
  m=h->cipher;
  l->next=h->next;
  free(h);
  h=l->next;
  if(h!=l)
    Joseph(m,h);
  else
  {
    printf("%3d",h->number);
    free(h);
  }
}
main()
{
 int m;
 int n;
 int i;
 clrscr();
 printf("Please input the starting value of M ( the upper limit worth of M ) : ");
 scanf("%d",&m);
 printf("Please input the man's figure who have a hand in: ");
 scanf("%d",&n);
 printf("Please input the cipher from number1 to number%d:",n);
 init(n);
 printf("The order of Dequeue is :");
 Joseph(m,H);
}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表