#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值,從他在順時針方向上的下乙個人開始重新報數,如此下去...