public class LinkedTest {
/**
* @param args
*/
public static void main(String[] args) {
ChildLinked linker = new ChildLinked(9,2,2);
linker.createLinked();
linker.play();
}
}
class Child{
int no; //编号
Child nextChild; //下一个节点
public Child(int no){
this.no = no;
}
}
class ChildLinked{
private int length; //队列长度
private int startNum; //开始报数
private int outNum; //出列数
Child firstChild = null; //第一个结点
Child temp = null; //指针
public ChildLinked(int length,int startNum,int outNum){
this.length = length;
this.startNum = startNum;
this.outNum = outNum;
}
//生成圈
public void createLinked(){
Child utilChild = null;
for(int i=1;i<=length;i++){
if(i==1){
firstChild = new Child(i);
temp = firstChild;
} else {
utilChild = new Child(i);
temp.nextChild = utilChild;
temp = utilChild;
if(i==length)
utilChild.nextChild = firstChild;
}
}
}
//开始游戏
public void play(){
temp = firstChild;
Child preChild = null;
for(int i=1;i<startNum;i++){
preChild = temp;
temp = temp.nextChild;
}
while(length>0){
for(int i=1;i<outNum;i++){
preChild = temp;
temp = temp.nextChild;
}
preChild.nextChild = temp.nextChild;
System.out.println("child no="+temp.no+" is out");
temp = temp.nextChild;
length--;
}
}
}
分享到:
相关推荐
java 实现的链表简单的丢手绢游戏,可以研究一下链表的机制,还算一般复杂
用java实现的丢手帕问题,即有n个人围成圈,从第k个人开始从1报数,报到第m个人时出局,从出局人的下一个开始从新报数,报到第m个人时出局......如此循环直至最后一人出局
java解决丢手帕问题,运用了链表来解决
《音乐游戏:丢手绢》.ppt
丢手绢游戏教案.pdf
经典丢手绢的程序,使用c++纯文本编程的。
传统智力游戏——丢手绢.docx
约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”)
大班游戏活动教案《丢手绢》.docx
设编号为1,2,… n的n个人围坐一圈,约定编号为k(1)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。...
大班游戏课教案《丢手绢》润新教育.txt
大班游戏活动教案《丢手绢》润新教育.txt
幼儿园小班优秀游戏教案《丢手绢》润新教育.txt
小班游戏课教案《民间丢手绢》润新教育.txt
学前教育幼儿游戏活动《丢手绢》教学设计及反思.pdf
主要介绍了java基于双向环形链表解决丢手帕问题的方法,简单描述了丢手帕问题,并结合实例形式给出了Java基于双向环形链表解决丢手帕问题的步骤与相关操作技巧,需要的朋友可以参考下
大班民间游戏优秀教案及教学反思《丢手帕》-3页.pdf
人教版小学英语3年级下-句子游戏-丢手帕(where-is-the-handkerchief).doc
丢手绢幼儿园教案___5篇.docx