九曲黄河重万山吧 关注:10贴子:487
  • 2回复贴,共1
typedef struct node
{
int data;
struct node *next;
}LNode,*linklist;
#include <stdio.h>
void create(linklist *jp,int n);
int josephus(linklist jp,int s,int m);
main()
{
linklist jsp;
int n,s,m;
printf("intput n:");
scanf("%d",&n);
create(&jsp,n);
printf("input s,m:");
scanf("%d,%d",&s,&m);
josephus(jsp,s,m);
getch();
}
void create(linklist *jp,int n)
{
int i;
linklist p,pre;
if(n!=0)
{
*jp=(linklist)malloc(sizeof(LNode));
(*jp)->data=1;
(*jp)->next=*jp;
pre=*jp;
for(i=2;i<=n;i++)
{
p=(linklist)malloc(sizeof(LNode));
p->data=i;
p->next=pre->next;
pre->next=p;
pre=p;
}
}
else *jp=0;
}
int josephus(linklist jp,int s,int m)
{
linklist p,pre;
int count;
if(!jp)
{
printf("data error!\n");
return(0);
}
p=jp;
for(count=1;count<s;count++)
p=p->next;
printf("output :");
while(p!=p->next)
{
for(count=1;count<m;count++)
{
pre=p;
p=p->next;
}
printf("%d ",p->data);
pre->next=p->next;
free(p);
p=pre->next;
}
printf("%d\n",p->data);
free(p);
return(1);
}I


1楼2013-10-10 11:25回复
    这是啥


    IP属地:安徽来自Android客户端2楼2013-10-24 22:52
    收起回复