丟手帕問題的雙向環形鍊錶實現

2021-06-06 09:47:26 字數 543 閱讀 6156

問題:設編號為1、2……n的幾個小孩圍坐一圈,約定編號為k(1=我們現在用乙個雙向環形鍊錶來解這一問題。先來看看下面這幅圖:

圓圈代表乙個結點,紅色的指標指向下乙個元素,紫色的指標指向上乙個元素。first指標指向第乙個元素,表明第乙個元素的位置,cursor是游標指標,它的作用重大。那麼這個環形的鍊錶就可以模擬小孩排成的圓圈,下面是具體的**:

public class test  		

}class child

}class cyclelinkelse if(i1){

//數m下

for(int i=1;i執行結果:

1<<2<<3<<4<<5<<

小孩4出局了!

小孩2出局了!

小孩1出局了!

小孩3出局了!

最後乙個出局的小孩是5

自己把**敲了一遍,很有感覺。。。

單向環形鍊錶,約瑟夫問題(丟手帕)

public class josepfu 建立乙個環形的單向鍊錶 class circlesinglelinkedlist boy curboy null 輔助指標,幫助構建環形鍊錶 使用for迴圈建立環形鍊錶 for int i 1 i nums i else 遍歷當前的環形鍊錶 public v...

丟手帕問題java實現

package com.xiaowen public class demo4 class child 環形鍊錶 class cyclink 設定鍊錶大小 public void setlen int len 設定從第幾個人開始數數 public void setk int k 開始play publ...

採用Ruby 實現丟手帕問題

題目 有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。實現思想 將陣列中的所有元素都定義為1,從第乙個開始累加求sum,設計乙個下標i,如果sum 3,則將進3的元素定為0,sum 0,繼續求和,直到最後乙個元素 判斷如果是最後乙個...