`
xlaohe1
  • 浏览: 127071 次
  • 性别: Icon_minigender_1
  • 来自: 来处
社区版块
存档分类
最新评论

链表,约瑟夫环问题

阅读更多
/***
 * N 个人围成一圈
 *	从1个人开始数 
 *  数到 M 的数的人就离开圈子 
 *  下一个人又从1开始数
 * @author Administrator
 *
 */
public class M3 {
	public static void main(String[] args) {
		Node root = new Node();
		build(root, 41, 3);
		//display(root, 3);
	}
	public static void display(Node root, int n) {
		Node parent = root;
		Node current = root;
		int i = 0;
		while(current.next != current) {
			i ++;
			if(i == n) {
				System.out.println("death:" + current.key);
				parent.next = current.next;
				i = 0;
			}
			parent = current;
			current = current.next;
		}
		System.out.println("the live:" + current.key);
	}
	public static void build(Node root, int n, int m) {
		Node node = null, current = root;
		//Node root = new Node();
		root.key = 1;
		for(int i = 1; i < n; i ++) {
			node = new Node();
			node.key = i + 1;
			root.next = node;
			root = node;
		}
		node.next = current;
		display(current, m);
	}
}

class Node {
	int key;
	Node next;
}


欢迎指正
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics