C語言 實現約瑟夫環

2021-08-10 05:34:41 字數 1073 閱讀 3946

鏈式解法:

#include #include typedef struct sqlist

sqlist;

//建立解約瑟夫環需要的鍊錶,該鍊錶不帶頭節點

sqlist *creatlist(int length)

p->next = null;

/*普通鍊錶轉不帶頭結點的迴圈鍊錶,就是將頭指標下移到第乙個節點位置

原來的頭結點刪掉,剩最後乙個節點的判斷條件就是head == head->next*/

temp = head; //先儲存下來頭結點,之後刪除用

p->next = head->next; //頭尾鏈結

head = head->next; //頭結點下移

free(temp); //釋放頭節點

return head; //返回煉表頭

順序表解法:

#include #include #define true 1

#define false 0

int main(void)

}//下標下移,考慮迴圈

if (i == num)

i = 1;

else

i++;

}//判斷是不是最後乙個人

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

C語言實現約瑟夫環討論

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