约瑟夫环问题:
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。
从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。
从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;
依此规律重复下去,直到圆桌周围的人全部出列。
基本要求:用不带头结点的单循环连表作为数据元素的存储结
结点个数:8。即8个结点的编号1,2,3,4,5,6,7,8
随机报数值m = 2.
package cn.ls.ring.test;
/**
*
*结点类
*/
public class Node {
int code; //结点值
Node next; //下一个结点
public Node() {
super();
}
public Node(int code) {
super();
this.code = code;
}
Node(int code, Node nextVal){
this.code = code;
this.next = nextVal;
}
public boolean equals(Node node) {
return code == node.code;
}
}
package cn.ls.ring.test;
/**
*
*约瑟夫环类
*/
public class JesephTest {
//头指针
Node head;
//尾指针
Node rear;
//当前指针
Node current;
int size;
/**
* 删除
* @param m 随机报数值 逐个删除所有结点.