首页 > 趣味百科 > 约瑟夫环数据结构实验报告(约瑟夫问题的数据结构实验报告)

约瑟夫环数据结构实验报告(约瑟夫问题的数据结构实验报告)

约瑟夫问题的数据结构实验报告

引言:

约瑟夫问题是一个经典的数学问题,产生于一个古老传说。传说中,约瑟夫和他的40个朋友被罗马军队包围在洞中。他们决定宁愿死也不成为罗马的俘虏,于是决定集体自杀。约瑟夫提出一个方案,由他开始,每k个人杀掉一个人,直到剩余一个人为止。约瑟夫为了保护自己选择了最优方案,经过一番颠簸,剩下自己一个人。本篇实验报告旨在通过实例演示,介绍约瑟夫问题的解法以及塑造数据结构基础运用的能力。

方法:

约瑟夫问题的解法包括多种,由于是一个经典的问题,故前人已经给出了多种可靠、高效的解答。本篇实验报告主要介绍链表法的实现细节,其核心思想是:将n个人构成一个环,每次从这个环中删除第m个人,然后从被删除的下一个人继续重新计数,直到剩下最后一个人。

结果:

具体地说,在这个环中每个人都有前一个和后一个人的链接,而最后一个人指向第一个人,以此链接起整个数组。当需要删除一个人时,可以直接从链表中移除,移除人数遍历链表直接即可。最后漏落一个人就是答案。以下是这种解法的Java代码实现:

``` public static int JosephusFunction(int n , int m){ if(n<1 || m<1){ return -1; } LinkList node = createLinkList(n); int counter=0, pre=0; for(int i=n;i>1;i--){ counter = 1; while(counter版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至:3237157959@qq.com 举报,一经查实,本站将立刻删除。

相关推荐