C語言迴圈順序鍊錶實現約瑟夫環

2021-10-04 12:14:39 字數 737 閱讀 2827

#include

#include

typedef

struct sssone;

//初始化結點的方法

one *

initialize

(int n)

//尾結點指向頭結點

y->next=s;

//返回首結點位址

return s;

}void

find

(one* s,

int k,

int m)

one* w=s;

//找到開始數數的人的編號k

while

(w->numeber!=k)

//當w的指標沒指向自己的時候,做以下迴圈

while

(w->next!=w)

q->next=w->next;

//從鍊錶上刪除w結點

printf

("出列的編號和密碼為:%d,%d\n"

,w->numeber,w->data)

;free

(w);

w=q->next;

}//最後乙個人也出列

printf

("獲得勝利的人的編號和密碼分別是:%d,%d\n"

,w->numeber,w->data)

;free

(w);

}main()

迴圈鍊錶實現約瑟夫環(c語言)

問題描述如下 編號為1,2 n的n個人按順時針方向圍坐一圈,每人持有乙個密碼。一開始人選乙個正整數作為報數上限值m,從第乙個人開始按順時針方向自1開始報數,報到m時停止報數,報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,直到所有人出列。設計程式求出列順序。問題分析...

迴圈鍊錶實現約瑟夫環(C語言)

約瑟夫環問題,是乙個經典的迴圈鍊錶題。約瑟夫環問題描述 已知 n 個人 分別用編號 1,2,3,n 表示 圍坐在一張圓桌周圍,從編號為 k 的人開始順時針報數,數到 m 的那個人出列 他的下乙個人又從 1 開始,還是順時針開始報數,數到 m 的那個人又出列 依次重複下去,直到圓桌上剩餘乙個人。輸出的...

迴圈鍊錶實現約瑟夫環(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 迴...