C語言 C 之鍊錶實現約瑟夫環

2021-08-13 22:39:35 字數 582 閱讀 7750

本人計算機剛入門,老師看我們學習程式設計太慢就布置了幾個經典程式設計任務,限期完成,其中包括約瑟夫環問題。多方複習反覆琢磨終於親自work out,老師說需要free一下記憶體麻煩看到的朋友指點指點,因為我第一步的資料後面還需要用到,不知道怎麼free。

#include#include#define n 100  //總人數

#define m 3 //數三次出列

#define len sizeof(struct ring)

struct ring

;void main()

printf("\n");

p1 = head;

int n = 1,count=1;

while (countnext;

} //if (m == 1) head = p1->next;

p2->next = p1->next;

printf("第%d次出列:%d\n", n++, p1->a);

p1 = p1->next;

} printf("\nwinner is %d\n", p1->a);

}

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

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

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

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

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

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 找到開始數數的人的編號...