資料結構 約瑟夫環

2021-08-16 17:06:34 字數 724 閱讀 4103

【問題描述】

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

【程式實現】

#include#include#include#includeint m, n;

struct josephstruct

;struct josephstruct *head;

void joseph()

else

}}int main()

else

temp = p;

p->id = i + 1;

scanf("%d", &p->mm);

} printf("輸入初始報數值: ");

scanf("%d", &m);

printf("淘汰序列: ");

joseph();

printf("\n輸入約瑟夫環大小(輸入0退出): ");

} return 0;

}

該程式中主要採用雙迴圈鍊錶(單迴圈鍊錶更加簡便,這裡主要是用於練習相關知識所以採用雙迴圈鍊錶),在這裡只設定頭結點,通過對於結點的刪除以及新增來實現該程式。

資料結構 約瑟夫環問題

實驗一線性表的應用 實驗目的和要求 通過實驗進一步理解線性表的邏輯結構和儲存結構,提高使用理論知識指導解決實際問題的能力,熟練掌握鍊錶的實際應用。主要內容 題目1 josephus環問題 問題描述 約瑟夫 joseph 問題的一種描述是 編號為1,2,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼...

資料結構之約瑟夫環

資料結構之約瑟夫環 c語言實現 因為最近在學習資料結構和做相關的實驗,所以想把自己的所做的分享一下 設有編號為1,2,n的n n 0 個人圍成乙個圈,每個人持有乙個密碼m。從第乙個人開始報數,報到m時停止報數,報m的人出圈,再從他的下乙個人起重新報數,報到m時停止報數,報m的出圈,如此下去,直到所有...

資料結構 約瑟夫環問題

1.問題描述 約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。鍊錶思路 我是通過單鏈表實現的,首先要思考...