c++雙向鍊錶實現約瑟夫環
約瑟夫環問題描述:已知num個小孩(以編號1,2,3…num分別表示)圍坐在一張圓桌周圍。從編號為k的人開始從1順次報數,數到t的那個人出列;他的下乙個人又從1開始報數,後面順次數到t的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列,試計算最後出列的那個小孩的編號。
**如下:
#include
using namespace std;
//1.定義小朋友節點類
class
child};
//2.定義圓圈遊戲類
class
circle};
//構建節點的迴圈鍊錶函式:確立每個小孩的左右鄰居
void
build()
else
if(i ==
(scale -1)
)else}}
//遊戲執行函式:從當前節點順時針迴圈開始數num個數
void
run(int t
)else
//count the next
} cout <<
"the last child id is "
<< current-
>childno << endl;}}
;int main()
雙向鍊錶實現約瑟夫環
c語言版 author super yang date 2017 03 30 include includetypedef struct node 定義鍊錶節點型別 linklist int main else temp head total n 記錄當前人數 front head while to...
迴圈鍊錶實現約瑟夫環(C實現)
include includetypedef struct jonode node struct jonode 迴圈鍊錶核心 node josephus int m,int n node head,p1,p2 int cnt 0 int n 0 while n else p2 next head 迴...
迴圈鍊錶實現約瑟夫環
約瑟夫問題 有n個人圍坐一圈,從第k個人開始數,數到m的那個人出隊。知道最後乙個人出隊。有11個人,從第2個人開始數,數到3的那個人出隊。如下簡圖 這裡有兩個關鍵 1 建立迴圈佇列 不能有頭結點 2 隔m 1步取出該節點 程式如下 include using namespace std typede...