用迴圈鍊錶實現的,思路很簡單,只是要注意指標的修改,程式設計基礎差的容易出錯。
/*約瑟夫環 - 迴圈鍊錶實現
author : milo.wang
date : 2012/9/15
*/#include using namespace std;
typedef struct node node, *nodeptr;
void josephusring(int n, int k, int m)
else
if(i+1 == k)
s = p;
p->num = i+1; }
while(1)
printf("%d\n",s->next->num);
p = s->next;
s->next = p->next;
free(p);
if(p == s)
s = s->next; }}
int main(int argc, char *argv)
約瑟夫環實現
約瑟夫環問題,這是乙個很經典演算法,處理的關鍵是 偽鍊錶 問題描述 n個人圍成一圈,從第乙個人開始報數,報到m的人出圈,剩下的人繼續從1開始報數,報到m的人出圈 如此往復,直到所有人出圈。模擬此過程,輸出出圈的人的序號 1 2 3 4 5 6 7 8 3,6 出圈 剩下7 8 1 2 4 5 7 8...
約瑟夫環的實現
首先介紹一下約瑟夫環 約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0 ...
約瑟夫環的實現
約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。如圖 我們有由十個節點組成的環形鍊錶,其中資料域的值為編...