約瑟夫問題(C語言 迴圈鍊錶)

2021-07-23 09:00:50 字數 740 閱讀 1620

實現**如下:

#include#includetypedef struct nodelnode,*linklist;

void josephus(int n, int m, int k)

p->data = i;//編號

if(list == null)

list = p;

else

x->next = p;//將x和p節點串起來

x = p;//x指標後移

}p->next = list;//建立乙個迴圈鍊錶

p = list;//p指標後移

for(i = 1; i < k; i++)

//此時p指向第1個出發點

while(p->next != p)

//p指向第m個結點,x指向第m-1個結點

x->next = p->next; //刪除第m個結點

printf("%d號自殺\n", p->data); //輸出乙個結點編號

free(p); //釋放被刪除結點的空間

p = x->next; //p指向新的出發點

}printf("最後能生存下來的為%d號\n", p->data); //輸出最後那個結點的編號

free(p);

}int main()

約瑟夫環問題 C語言迴圈鍊錶

一 問題描述 約瑟夫環問題是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列,他的下乙個人又開始報數,數到m的那個人又出列,依次規律重複下去,圓桌周圍的人全部出列。二 演算法原理 約瑟夫環運作如下 1 一群人圍坐在一起成環狀...

C語言 約瑟夫問題迴圈鍊錶實現

約瑟夫問題 10分 題目內容 有n只猴子,按順時針方向圍成一圈選大王 編號從1到n 從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。輸入格式 輸入包含兩個整數,第乙個是n...

迴圈鍊錶 約瑟夫問題(C )

include using namespace std const maxsize 10 class node class josephus void josephus init else bool josephus empty void josephus insert elem n 1 datac...