package 演算法.單向鍊錶和雙向鍊錶的建立和遍歷.約瑟夫問題之單向環形鍊錶;
public class josephu
}//建立乙個單向環形鍊錶
class circlelinkedlist
boy curboy =null;
for (int i = 1; i <=nums ; i++) else }}
public void show()
boy curboy = first;
while (true)
curboy=curboy.getnext();}}
//根據使用者輸入,計算小孩出圈資料
//startno 從第幾個開始數 countnum數幾下出隊,小孩數量
public void countboy(int startno,int countnum,int num)
//建立輔助指標,並使其指向first的前一位
boy helper =first;
while (helper.getnext()!=first)
//從第startno開始數,先把first和helper移動startno-1次
for (int i = 0; i //開始報數,first和helper每次移動countnum-1次,然後出圈,直到只有乙個人
while (true)
for (int i = 0; i //輸出當前結點,並將其出隊
system.out.println(first);
first=first.getnext();
helper.setnext(first);
}//退出迴圈後輸出當前唯一的結點
system.out.println(first);
}}//建立乙個boy,表示乙個結點
class boy
public int getno()
public void setno(int no)
public boy getnext()
public void setnext(boy next)
@override
public string tostring() ';
}}
環形鍊錶解決約瑟夫問題
使用for來建立我們的環形鍊錶 boy curboy null 輔助指標。幫助構建環形鍊錶 for迴圈建立環形鍊錶 for int i 1 i nums i else 遍歷當前的環形鍊錶 public void showboy 因為first不能動,因此我們任然使用乙個輔助指標來完成 boy cur...
單向環形鍊錶解決約瑟夫問題
package com.xkp.data.linkerlist author xkp version 1.0 classname josepfu description 單向環形煉表處理約瑟夫問題 date 2020 11 30 0030 23 12 public class josepfu cla...
環形鍊錶解決約瑟夫問題 小孩出圈
public class josepfu 建立乙個單向的環形鍊錶 class circlesinglelinkedlist boy curboy null 輔助指標 for int i 1 i nums i else 遍歷當前迴圈鍊錶 public void showboy 因為first不動,我們...