约瑟夫环问题
typedef struct Node { struct Node *next; int content; }Node,*NodePtr; typedef NodePtr XHList; typedef NodePtr position;
void create(XHList *L) { (*L) = (NodePtr)malloc(sizeof(Node)); (*L)->next = NULL; position tail = (*L); int i=1; for(;i<42;i++) { position midd = (NodePtr)malloc(sizeof(Node)); midd->content = i; midd->next = NULL; tail->next = midd; tail = midd; } tail->next = (*L)->next; }
void YSF(XHList *L) { position curr = (*L); position midd = NULL; while(curr->next!=curr) { curr = curr->next->next; printf("%d\n",curr->next->content); midd = curr->next; curr->next = curr->next->next; midd->next = NULL; free(midd); } printf("%d\n",curr->content); }