約瑟夫環:編號為1,2,…,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼(正整數)。一開始任選乙個正整數作為報數上限值m,從第乙個人開始按順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將它的密碼作為新的m值,從它的順時針方向的下乙個人開始重新從1報數,如此下去,直至全部人出列為止。最後按照出列的順序輸出每個人的編號。
#include
#include
#include
// 定義成員結構體
struct member
node;
// 定義結構體指標
struct member* head,
* p,
* p1;
void
createlist
(int n)
;//建立迴圈鍊錶
void
enterpassword
(int n)
;//迴圈鍊錶賦值密碼
void
printnumber
(int n,
int m)
;//列印刪除人的順序
intmain()
void
createlist
(int n)
p->next = head;
// 構建迴圈鍊錶
p1 = head;
// p1指向頭結點初始化
}void
enterpassword
(int n)
}void
printnumber
(int n,
int m)
// 刪除節點
p = p1->next;
p1->next = p->next;
m = p->password;
// 重新賦值密碼
printf
("%d "
, p->number)
;// 輸出這個b的序號
free
(p);
}}
C語言 實現約瑟夫環
鏈式解法 include include typedef struct sqlist sqlist 建立解約瑟夫環需要的鍊錶,該鍊錶不帶頭節點 sqlist creatlist int length p next null 普通鍊錶轉不帶頭結點的迴圈鍊錶,就是將頭指標下移到第乙個節點位置 原來的頭結...
C語言實現約瑟夫環
直接上 define crt secure no warnings include includetypedef struct listnode listnode void create listnode firstnode,int m 建立單向迴圈鍊錶 int i listnode pre fir...
C語言實現約瑟夫環
一共有n個人,圍成一圈,從一開始報數,數到m的人出局,然後重新開始報數。算出出局的人的順序 如果最後只能剩下乙個人,請問是幾號?include includetypedef struct node linklist,node linklist init ring int num return hea...