Java 使用鍊錶實現約瑟夫環

2021-06-08 23:52:35 字數 662 閱讀 1657

約瑟夫環是乙個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。求出出隊序列。

採用鍊錶實現,結點資料就是編號。

package com.dm.test;

public class test2

} //將約瑟夫環建成乙個鍊錶

public static int build(node root,int n, int m)

current.next = root;

int order = come(root,n,m);

return order;

} //出佇列

//結束條件:只有乙個結點時,這個結點的next是它自身

//將出來的數,放在乙個陣列中,遍歷陣列就是出隊序列

public static int come(node root,int n, int m)

if(i==m-1)

}order[j]=p.data;

return order; }}

class node

}

Java迴圈鍊錶實現約瑟夫環

問題描述 約瑟夫環運作如下 1 一群人圍在一起坐成 2 環狀 如 n 2 從某個編號開始報數 如 k 3 數到某個數 如 m 的時候,此人出列,下乙個人重新報數 4 一直迴圈,直到所有人出列 3 約瑟夫環結束 使用迴圈鍊錶實現約瑟夫環是一種解法,但是效率不高。public class yuesefu...

鍊錶實現約瑟夫環

約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依 此規律重複下去,直到圓桌周圍的人全部出列。實現 include using namespace ...

使用迴圈鍊錶實現約瑟夫環

約瑟夫演算法 n個人圍成一圈,每個人都有乙個互不相同的密碼,該密碼是乙個整數值,選擇乙個作為起點,然後順時針從1到k k為起點人手中的密碼值 數數。數到k的人退出圈子,然後從下乙個開始繼續從1到j 剛退出圈子的人的密碼 數數,數到j的人退出圈子。重複上面的過程,直到剩下最後乙個人。include s...