約瑟夫問題,用java單鏈表解決

2021-08-19 04:47:49 字數 930 閱讀 3787

/*

設編號為1,2,3...n,的n個人圍坐一圈,約定編號為k(1的人從1開始報數,數到m的那個人出列,它的下一位又從1開始報數,數到m的人又出列,

以此類推,直到所有人出列為止,由此產生乙個出隊編號的序列

由k節點起從1開始計數,計到m時,對應節點從鍊錶中刪除,然後再從被刪除節點的下乙個節點

又從1開始計數,直到最後乙個結點從鍊錶中刪除,演算法結束

解決約瑟夫問題,用鍊錶

即丟手帕問題*/

public class demo5 }

class child

public child(int num)

}/*環形鍊錶*/

class cyclink

//設定數多少下

public void setm(int m)

//play

public void play()

//2,數m下

while(this.len != 1)

//找到要出圈的前乙個小孩

child temp2 = temp;

while(temp2.nextchild !=temp)

//3,將數到m的小孩,推出去

temp2.nextchild = temp.nextchild;

temp = temp.nextchild;

this.len--;

}system.out.println("最後出圈的人"+temp.num);

} public void setlen(int len)//設定鍊錶的長度

//初始化環形鍊錶

public void createlink()

else else}}

} //列印環形鍊錶

public void show()

}}

用迴圈單鏈表解決約瑟夫(Joseph)問題

用迴圈單鏈表解決約瑟夫 joseph 問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該...

用迴圈單鏈表解決約瑟夫(Joseph)問題

據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所...

運用迴圈單鏈表解決約瑟夫環問題

include using namespace std struct node 構造結點 為結點初始化 分配空間 int data node next class josephus void create 鍊錶的初始化 void output 輸出數值 private node head 迴圈鍊錶的...