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

2021-08-06 04:46:22 字數 730 閱讀 4318

#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;//迴圈鍊錶 的 末尾指標 指向頭部

node pre;

pre = p2;//最開始 煉表頭的前一位置為表尾

node tmp;

int m = 1;//計數 看 每次迴圈開始時候 從 0 還是1 開始 可以是0代表自己 也可以是1代表自己

int people = 0;//出局人數

while(people < times)

else

} return head; //最後 剩下乙個 自己指向自己 也就是倖存的那個

}//node findprevious(node h, node p)

//

// return tmp;

// }

void printcirclelist(node p)

} void showval(node p)

int main()

迴圈鍊錶實現約瑟夫環

約瑟夫問題 有n個人圍坐一圈,從第k個人開始數,數到m的那個人出隊。知道最後乙個人出隊。有11個人,從第2個人開始數,數到3的那個人出隊。如下簡圖 這裡有兩個關鍵 1 建立迴圈佇列 不能有頭結點 2 隔m 1步取出該節點 程式如下 include using namespace std typede...

約瑟夫環 迴圈鍊錶實現

題目 約瑟夫環的一種描述為 編號為1,2,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個人開始按順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向上的下乙個人開始重新從1報數,如此下去,直到所...

約瑟夫環,迴圈鍊錶實現

約瑟夫環的定義就不再贅述,直接上 如果朋友能看完這個 相信你能理解接下面這個小故事。有個人想從這個世界上消失,但是他又不想死,他想到了乙個辦法,他可以把另外乙個人殺了,然後再用這個人的身份生活下去。這個小故事與約瑟夫環無關 include include struct node int main e...