C語言約瑟夫環鏈表

2021-07-11 22:16:31 字數 729 閱讀 7622

#include

#include

#include

struct link * creat1(int n);

void out(struct link * head);

void free_(struct link * head);

struct link * jsf(struct link * head,int m);

struct link

;void main()

struct link * jsf(struct link * head,int m)

q->next = p->next;

free(p);

p = q;

}free(head);//刪除頭結點

return p;

}struct link * creat1(int n)    //建立迴圈鍊錶

p = head->next;   //刪除頭結點。使之為無頭結點鍊錶,多此一舉,懶得改

q->next = p;

free(head);

return p;

}void out(struct link * head)  //輸出無頭結點鍊錶

putchar(10);

}void free_(struct link * head)   //刪除無頭結點鍊錶,未使用

free(head);

}

C語言單鏈表實現約瑟夫環

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

C語言單鏈表實現約瑟夫環

前兩天朋友給我發來乙個題目,問我能不能用c語言鍊錶實現。13個人圍成一圈,從第1個人開始順序報號1,2,3。凡報到 3 者退出圈子,找出最後留在圈子中的人原來的序號。要求用鍊錶實現。看了題目以後發現其實是約瑟夫環,是乙個數學應用問題。約瑟夫環又稱為約瑟夫問題 丟手絹問題。一群人圍在一起坐成環狀,從某...

約瑟夫環 C語言

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