JOSEPH环

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

#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);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航