zookeeper python接口实例详解
239
2023-01-07
java使用链表实现约瑟夫环
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。求出出队序列。
采用链表实现,结点数据就是编号。
package com.dm.test;
public class Test2
{
public static void main(String[] args)
{
//头结点
Node root = new Node(1);
int[] order = build(root,9,5);
for(int i =0;i { System.out.phttp://rint(order[i]+" "); } } //将约瑟夫环建成一个链表 public static int[] build(Node root,int n, int m) { Node current = root; for(int i = 2; i<=n; i++) { Node node = new Node(i); current.next = node; current = node; } current.next = root; int[] order = come(root,n,m); return order; } //出队列 //结束条件:只有一个结点时,这个结点的next是它自身 //将出来的数,放在一个数组中,遍历数组就是出队序列 public static iAGZFradnt[] come(Node root,int n, int m) { int[] order = new int[n]; int j = 0; Node p = root; while(p.next!=p) { int i = 1; while(i { p=p.next; i++; } if(i==m-1) { order[j]=p.next.data; j++; p.next = p.next.next; p=p.next; } } order[j]=p.data; return order; } } class Node { int data; Node next; public Node(int data) { AGZFrad this.data = data; next= null; } }
{
System.out.phttp://rint(order[i]+" ");
}
}
//将约瑟夫环建成一个链表
public static int[] build(Node root,int n, int m)
{
Node current = root;
for(int i = 2; i<=n; i++)
{
Node node = new Node(i);
current.next = node;
current = node;
}
current.next = root;
int[] order = come(root,n,m);
return order;
}
//出队列
//结束条件:只有一个结点时,这个结点的next是它自身
//将出来的数,放在一个数组中,遍历数组就是出队序列
public static iAGZFradnt[] come(Node root,int n, int m)
{
int[] order = new int[n];
int j = 0;
Node p = root;
while(p.next!=p)
{
int i = 1;
while(i { p=p.next; i++; } if(i==m-1) { order[j]=p.next.data; j++; p.next = p.next.next; p=p.next; } } order[j]=p.data; return order; } } class Node { int data; Node next; public Node(int data) { AGZFrad this.data = data; next= null; } }
{
p=p.next;
i++;
}
if(i==m-1)
{
order[j]=p.next.data;
j++;
p.next = p.next.next;
p=p.next;
}
}
order[j]=p.data;
return order;
}
}
class Node
{
int data;
Node next;
public Node(int data)
{
AGZFrad this.data = data;
next= null;
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~