直接上**
#define _crt_secure_no_warnings
#include#includetypedef struct listnode
listnode;
void create(listnode * firstnode, int m) //建立單向迴圈鍊錶
int i;
listnode * pre = firstnode;
for (i = 2; i <= m; i++)
pre->next = firstnode;
}void show(listnode * firstnode) //顯示迴圈鍊錶的節點編號
int i;
printf("建立的單向環表節點編號依次為:\n");
listnode * p = firstnode;
printf("%d\n", p->data);
p = p->next;
while (p != firstnode) }
listnode * joseph(listnode * firstnode, int m, int s, int n) //一共m個結點, 從第s個結點開始計數到第n個結點
int i;
listnode * current = firstnode;
for (i = 1; i <= s-1; i++)
printf("輸出第s個結點:\n");
printf("%d\n", current->data);
int j;
for (j = 2; j <= n-1; j++) //current已經為當前節點,所以j從2開始(下乙個節點)
printf("輸出第n個結點:\n");
printf("%d\n", current->next->data);
//刪除第n個結點
listnode * noden = current->next;
current->next = noden->next;
if (noden == firstnode)
noden->next = null;
free(noden);
show(firstnode);
return firstnode;
}int main()
C語言 實現約瑟夫環
鏈式解法 include include typedef struct sqlist sqlist 建立解約瑟夫環需要的鍊錶,該鍊錶不帶頭節點 sqlist creatlist int length p next null 普通鍊錶轉不帶頭結點的迴圈鍊錶,就是將頭指標下移到第乙個節點位置 原來的頭結...
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...