约瑟夫问题c语言详解

更新时间:01-26 教程 由 别想 分享

的人出圈,直到一个人留下来。这个问题可以用循环链表的形式来解决。

就将该人的出圈标志设为true,并将该节点从链表中删除。重复这个过程,直到只剩下一个人为止。

cludecludeclude

//定义结构体表示每个人的信息ode {tum; //编号

bool out; //是否出圈odeext;

} Node;

//创建循环链表t) {

Node head, p, q;alloc(sizeof(Node));um = 1;

head->out = false;

q = head;t; i++) {alloc(sizeof(Node));um = i;

p->out = false;ext = p;

q = p;

}ext = head; head;

//解决约瑟夫问题t) {

Node p = head, q = head;tt = 0;ext != p) {t++;t) {

p->out = true;tfum);extext;

free(p);ext;t = 0;

} else {

q = p;ext;

}

}tfum);

//主函数tain() {t;tf");f););); 0;

ain,然后调用createList函数创建循环链表,调用josephus函数解决约瑟夫问题。

声明:关于《约瑟夫问题c语言详解》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2123665.html