/*
設編號為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 迴圈鍊錶的...