java環形連結串列約瑟夫環問題筆記
約瑟夫環問題
設編號1,2,3…n的n個人圍坐一圈,從編號為k的人從1開始報數,數到m的人出列。他的下一位繼續從1開始報數,數到m的人出列,以此類推,直到所有人出列位置,由此產生一個出隊編號的序列。
使用不帶頭結點的迴圈連結串列處理該問題、
package f1;
public class g1{
public static void main (String []args) {
// n=5 五個人 k=1從第一個人開始報數 m=2數兩下
CircleSingleLinkedList List = new CircleSingleLinkedList();
List.addnode(8);
List.ysf(1, 2);
}
}
class CircleSingleLinkedList{
private node first =new node(-1); //頭結點
public void addnode(int num) {
//建立num個節點的環形連結串列
node temp,curnode=first;
for(int i=0; i<num;i ++) {
temp = new node(i+1);
curnode.next = temp;
temp.next = first;
curnode = temp;
}
}
public void showlist() {
node temp = first ;
while(true) {
if(temp.next == first) break;
temp = temp.next ;
System.out.println(temp.No);
}
}
public void ysf(int k,int m) {
node temp = first,helper=null;
int u=m;
while(k-- > 0) {
helper = temp;
temp = temp.next;
}
while(true) {
if(temp == helper){
//System.out.println(temp.No);
break;
}
while(m-- > 0) {
helper = temp;
temp = temp.next;
if(temp == first) {
helper = temp;
temp = temp.next;
}
}
m=u;
if(temp.No != -1)
System.out.println(temp.No);
helper.next = temp.next;
}
}
}
//建立第一個節點,讓first指向該節點
//沒建立新的節點就把該節點加入到已有的環形連結串列中
class node{
public int No;
public node next;
public node(int no) {
this.No = no;
}
}
相關文章
- 連結串列面試題(八)---約瑟夫環面試題
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- 約瑟夫環 佇列+連結串列佇列
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- javascript中使用迴圈連結串列實現約瑟夫環問題JavaScript
- 約瑟夫(Josephus problem)環問題初探
- 迴圈連結串列(約瑟夫問題)--python實現Python
- 陣列解決約瑟夫環問題陣列
- 約瑟夫環遊戲遊戲
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 面試題—Java遞迴實現約瑟夫環面試題Java遞迴
- 環形連結串列II
- 3.2資料結構之指標和連結串列 1748:約瑟夫問題資料結構指標
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- 每日演算法隨筆:環形連結串列演算法
- 約瑟夫環問題——初步瞭解+陣列實現陣列
- 141. 環形連結串列
- JS資料結構第三篇---雙向連結串列和迴圈連結串列之約瑟夫問題JS資料結構
- 力扣學習筆記:142. 環形連結串列 II力扣筆記
- 實戰資料結構(4)_迴圈單連結串列解決約瑟夫問題資料結構
- 約瑟夫環(vector類解決)
- 約瑟夫環(陣列實現)陣列
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- IOS 約瑟夫環遊戲的實現iOS遊戲
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- 約瑟夫問題pascal程式
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- 演算法141. 環形連結串列演算法
- Python實現環形連結串列詳解Python
- 約瑟夫生者死者遊戲問題遊戲
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- LeetCode-142-環形連結串列 IILeetCode
- Leetcode-142. 環形連結串列 IILeetCode
- 連結串列面試題(九)---判斷一個連結串列是否帶環面試題
- 用Python實現約瑟夫環演算法Python演算法
- 每日leetcode——142. 環形連結串列 IILeetCode
- 環形連結串列I、II(含程式碼以及證明)
- 判斷單連結串列是否存在環,判斷兩個連結串列是否相交問題詳解