约瑟夫环算法的Java实现代码

约瑟夫环算法的Java实现代码,第1张

约瑟夫环算法的Java实现代码,第2张

相信大家都知道,这是一个新的算法问题。约瑟夫环的C语言实现是指针链表的形式。java实现呢?我的是内部类的形式。
算法描述:N个人组成一个圈,每个人的数字不一样。选择一个人作为起点,然后顺时针从1数到k。每数到k的人退出圈子,圈子缩小,然后下一个人从1继续。找到最后发起圈子的人的原号码。

程序实现:
公类约瑟夫圈{
私类节点{
公类节点下一个节点;

公共布尔标志;
}

私有节点[]列表;

public Joseph circle(){
list = new Node[30];
int I;
for(I = 0;i < 30i++){
Node Node = new Node();
node . flag = true;
if (i > 0) {
list[i - 1]。nextnode =节点;
}
list[I]= node;
}
列表[i - 1]。next node = list[0];
}

public void start(){
Node Node = list[29];
for(int I = 0;i < 135i++){
if((I+1)% 8 = = 0){
node . flag = false;
node . next node = node . next node . next node;
} else {
node = node . next node;
}
}
}

public void print(){
Node = list[29];
for(int I = 0;i < 30i++){
if(node . flag){
system . out . print(" # ");
} else {
system . out . print(" @ ");
}
node = node . next node;
}
}

public static void main(String[]args){
Joseph circle JC = new Joseph circle();
JC . start();
JC . print();
}
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 约瑟夫环算法的Java实现代码

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情