约瑟夫环
//约瑟夫环
int josf(LoopLink L,int k)
{
if(NULL==L||list_empty(L))
{
printf("执行失败\n");
return -1;
}
LoopLink p=L;
LoopLink q;
for(int i=0;i<=L->len;i++)
{
for(int j=1;j<k;j++)
{
p=p->next;
if(p==L)
{
j--;
}
}
q=p->next;
if(q==L)
{
q=L->next;
}
printf("%d\t",q->data);
p->next=q->next;
free(q);
L->len--;
}
return 0;
}
结果: