Java循环链表实现约瑟夫环(搬运)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java循环链表实现约瑟夫环(搬运)相关的知识,希望对你有一定的参考价值。
1 public class Josephus { 2 static class Node{ 3 int val; 4 Node next; 5 Node(int v){ 6 val=v; 7 } 8 }//成员类,代表节点,类似于数据结构中的结构体 9 public static void main(String[] args) { 10 int N=9;//这个表示总人数 11 int M=5;//数到几的人出列 12 Node t=new Node(1);//头节点单列出来,方便形成循环链表 13 Node x=t; 14 15 for(int i=2;i<=N;i++)x=(x.next=new Node(i));//建立单向链表 16 x.next=t;//最后一个节点的next指向第一个节点,形成循环链表 17 System.out.println("出圈的顺序为:"); 18 while(x!=x.next){ 19 for(int i=1;i<M;i++) 20 x=x.next; 21 //此时x是将出列的节点的前一个节点 22 System.out.print(x.next.val+" "); 23 x.next=x.next.next; 24 } 25 System.out.println(); 26 System.out.println("Survivors is "+x.val); 27 } 28 }
以上是关于Java循环链表实现约瑟夫环(搬运)的主要内容,如果未能解决你的问题,请参考以下文章