Java数据结构和算法-环形链表介绍和约瑟夫问题

Joseph(约瑟夫、约瑟夫环)问题

Joseph问题为:设编号为1,2,3...n的n个人围坐一圈,约定编号为k(1<=k<=n)的人开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,知道所有人出列为止,由此产生一个出队编号的序列
n=5,即有5个人
k=1,从第一个人开始报数
m=2,数2下

提示:

用一个不带头节点的循环列表来处理Joseph问题:先构成一个有n个节点的单循环链表,然后由k节点起从1开始计数,计到m时,对应节点从链表中删除,然后再从被删除节点的下一个节点又从1开始计数,直到最后一个节点从链表中删除算法结束。

出圈顺序:

2->4->1->5->3
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。