约瑟夫环(Josephus)问题:古代某法官要判决n个犯人的死刑,他有一条荒唐的法律,将犯人站成一个圆圈,从第s个人开始数起,每数到第d个犯人,就拉出来处决,然后再数d个,数到的人再处决……直到剩下的最后一个可赦免。当n=5,s=1,d=2,时:
第一步:定义节点Node
public class Node<T> {
public T data;
public Node<T> next;
public Node(T data,Node<T> next){
this.data=data;
this.next=next;
}
public Node(){
this(null,null);
}
}
第二步:定义单链表SingleLinkedList<T>
public class SingleLinkedList<T> implements LList<T> {
private Node<T> head;
public SingleLinkedList(){
this.head=new Node<T>();
}
public SingleLinkedList(SingleLinkedList<T> list){
Node<T> p=list.head.next;
Node<T> rear=this.head;
while(p!=null){
rear.next=new Node<T>(p.data,null);
rear=rear.next;
p=p.next;
}
}
public SingleLinkedLis