Java環形鍊錶 約瑟夫問題

2021-07-29 01:44:20 字數 1089 閱讀 9522

n個小孩圍成圈,丟手帕,從第start個小孩開始丟,每到第step個小孩出局;接著從下乙個小孩開始,直到最後乙個小孩為止,遊戲結束。

/**

*@author jiaozl

* cyclink cyclink = new cyclink();

* cyclink.setlen(5);

* cyclink.createlink();

* cyclink.setstart(2);

* cyclink.setstep(2);

* cyclink.show();

* cyclink.play();

*/public

class

cyclink

/*** 設定從第幾個人開始數數

*/public

void

setstart(int start)

/*** 設定step

*/public

void

setstep(int step)

/*** 開始play

*/public

void

play()

while(this.len!=1)

child temp2 = temp;

while (temp2.nextchild!=temp)

// 將疏導step的小孩,退出圈圈

temp2.nextchild = temp.nextchild;

temp = temp.nextchild;

this.len--;

}system.out.println("最後剩下的小孩:" + temp.no);

}/**

* 初始化環形鍊錶

*/public

void

createlink() else else }}

}/**

* 列印環形鍊錶

*/public

void

show() while(temp!=this.firstchild);

}}class child

}

環形鍊錶 約瑟夫問題

問題描述josephu問題 設編號為1,2,3 n的n個人圍坐成一圈,約定編號為k的人從1開始報數,數到m的那個人出列,他的下一位從1開始報數,數到m那個人又出列,直到所有人都出列為止,由此產生乙個出佇列編號的序號。解決方法 建立乙個輔助指標helper,指向頭指標的前乙個節點 當小孩報數的時候,f...

約瑟夫問題 單向環形鍊錶

約瑟夫問題的示意圖 josephu 問題 josephu 問題為 設編號為 1,2,n 的 n 個人圍坐一圈,約定編號為 k 1 k n 的人從 1 開始報數,數到 m 的那個人出列,它的下一位又從 1 開始報數,數到 m 的那個人又出列,依次類推,直到所有人出列為止,由此 產生乙個出隊編號的序列。...

單向環形鍊錶(約瑟夫問題)

josephu 問題 josephu問題為 設編號為1,2,n的n個人圍坐一圈,約定編號為k 1 k n 的人 從1開始報數,數到m的那個人出列,它的下一位又從1開始報數,數到m的那個人又出列,依次類推,直到所有人出列為止,由此產生 乙個出隊編號的序列。提示用乙個不帶頭結點的迴圈鍊錶來處理josep...