约瑟夫环问题c语言(约瑟夫环问题)
(相关资料图)
导读1、/* 约瑟夫环问题——链表模拟*/# include # include typedef struct node{ int id; struct node* next;} node; int main(){ int m, n, i; node *p, *q, *head; while (~scanf("%d%d", &m, &n)) { // 创建含 n 个节点的循环链表。
2、初始化编号 head = (node *)malloc(sizeof(node)); head->id = 1; q = head; for (i = 2; i id = i; q->next = p; q = p; } q->next = head; // 模拟退出过程 i = 1; p = head; while (p->next != p) { q = p; p = p->next; ++i; if (i == m) //delete(p); i = 1; { q->next = p->next; free(p); p = q->next; i = 1; } } // 打印剩余节点的编号 printf("%d", p->id); free(p); } return 0;}。
本文到此分享完毕,希望对大家有所帮助。
免责声明:本文由用户上传,如有侵权请联系删除!