主要思路是:建立頭結點--賦值--建立中間節點--賦值---建立尾結點--賦值。本次採用的迴圈鍊錶中的數字都是順序賦值。
node *create_josephus(int n)
p = head;
p->data = 1;
p->next = null;
for (i = 2; i < n; i++)
new_node = (node*)malloc(sizeof(node));
new_node->data = n;
new_node->next = null;
p->next = new_node;
p = p->next;
p->next = head;
} return head;
}
需要注意的是最後尾結點的輸出。
迴圈單鏈表實現約瑟夫問題
一堆猴子都有編號,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈,從第1開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。本題實現 輸出出佇列的順序的編號1.節點類package yosepfu program 3.鍊錶的相關操作 d...
C語言單鏈表實現約瑟夫環
1.約瑟夫環問題 編號為1,2 n的人按順時針方向圍坐一圈,每個人持有乙個密碼 正整數 開始任選乙個整數作為報數上限m,從第乙個人順時針自1開始順時針報數,報到m時停止報數。報到m的人出列,將他的密碼作為新的m值,從他順時針方向上的下乙個人開始重新從1報下去,如此下去,直到所有的人全部出列為止。例如...
C語言單鏈表實現約瑟夫環
前兩天朋友給我發來乙個題目,問我能不能用c語言鍊錶實現。13個人圍成一圈,從第1個人開始順序報號1,2,3。凡報到 3 者退出圈子,找出最後留在圈子中的人原來的序號。要求用鍊錶實現。看了題目以後發現其實是約瑟夫環,是乙個數學應用問題。約瑟夫環又稱為約瑟夫問題 丟手絹問題。一群人圍在一起坐成環狀,從某...