鏈式解法:
#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...