1.单链表实现约瑟夫环
#include "joseph.h"
LoopLink list_create(int m)
{LoopLink L = (LoopLink)malloc(sizeof(Node));if(NULL==L){printf("内存创建失败\n");return 0;}LoopLink q=L;for(int i=1; i<=m; i++){LoopLink p = (LoopLink)malloc(sizeof(Node));if(NULL==p){printf("内存创建失败\n");return 0;}p->data=i;q->next=p;q=p;}q->next = L->next;return L;
}void list_joseph(LoopLink L, int s,int n,int m)
{LoopLink p = L->next;for(int i=1; i<s; i++){p=p->next;}for(int j=1; j<=m; j++){for(int i=1; i<n-1; i++){p=p->next;}printf("第%d位:%-3d\n",j, p->next->data);LoopLink q=p->next;p->next=q->next;free(q);p=p->next;}
}