C 雙向迴圈鍊錶實現約瑟夫環

2021-09-04 19:27:17 字數 775 閱讀 3653

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...