约瑟夫环问题分析_约瑟夫环问题 天天新消息
来源:互联网时间:2023-05-03 12:02:57


(资料图片仅供参考)

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 <= n; ++i) { p = (node *)malloc(sizeof(node)); p->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;}。

本文为大家分享到这里,希望小伙伴们有帮助。

关键词: