i约瑟夫环

来源:互联网 发布:mac air需要关机吗 编辑:程序博客网 时间:2024/05/16 01:10
[code=C/C++]
#include <iostream>
#include <malloc.h>
using namespace std;
#define null 0
struct data {
  int num;
  struct data *next;
};//=====================================================================
int n;
//------------------------------------------------------------------------
struct data *creat(int x)
{
struct data *p1,*p2,*head;
n=0;
int i=1;
head=null;
p1=p2=(struct data *)malloc(sizeof(struct data));
 p1->num=i;
  for(;i<=x;i++)
  { n=n+1;
   if(n==1)head=p1;
 else
  p2->next=p1;
   p2=p1;
p1=(struct data *)malloc(sizeof(struct data));
   p1->num=i+1;
  }
 
  p2->next=head;
   return (head);
} //----------------------------------------------------------------------
struct data *ysfh(struct data *head)
{
 struct data *p1,*p2;
    int i,j,k,m;
 p1=head;
 cout<<"/n请输入k(1<=k<=n)和m:/n";
    cin>>k>>m;
 cout<<"出列顺序:";
 while(k!=(p1->num))                              //寻找k的位置
   {
             p1=p1->next;
    }
 for(;n>1;){
        
        for(i=0;i<m;i++)                     //迅速找出列的节点
  {p2=p1;
       p1=p1->next;
      }
     cout<<p1->num;
    p2->next=p1->next;                       //删除节点 
 n--;
  }
[/code]