資料結構C語言實現約瑟夫環

2021-10-06 13:42:59 字數 645 閱讀 2140

題目背景

編號為1,2,…,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼(正整數)。現在給定乙個隨機數m>0,從編號為1的人開始,按順時針方向1開始順序報數,報到m時停止。報m的人出圈,同時留下他的密碼作為新的m值,從他在順時針方向上的下乙個人開始,重新從1開始報數,如此下去,直至所有的人全部出列為止。

**如下

#include

#include

#include

typedef struct lnode

lnode,*linklist;

linklist creatlist(int n)

p1->next=l->next;

head=l->next;

delete l;

return head;

}void deleteelem(linklist p3,int n,int m)

printf("%3d",p3->num);

m=p3->pass;

p->next=p3->next;

delete p3;

p3=p->next;

}printf("%3d",p3->num);

delete p3;

}int main(void)

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...