#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int member;
struct node *next;
#include <stdlib.h>
typedef struct node
{
int member;
struct node *next;
}*Linklist;
int josephus_Listlink(Linklist H,int m,int s)//H为不带头结点的循环链表
{
Linklist p,pre;
if(!H)
{
printf("表中无元素");
return 0;
}
p=H;
for(int i=1;i<s;i++)
p=p->next;
while(p!=p->next)//很关键的判断是否只剩下一个元素;
{
for(int i=1;i<m;i++)//找到第m个元素(s处就是第一个元素)
{
pre=p;
p=p->next;
}
printf("%d\n",p->member);
pre->next=p->next;
free(p);//一定要记住释放空间
p=pre;
}
printf("%d",p->member);
free(p);//一定要记住释放空间
return 1;
}
int main()
{
return 0;
}