採用迴圈單鏈表實現約瑟夫環

2021-06-23 03:42:20 字數 509 閱讀 2521

演算法的基本思想:

利用鍊錶和陣列,約瑟夫環問題中的資料時人所在的位置,而這個資料時存在」第一元素、最後元素「,並且

存在唯一的前驅和後繼,符合線性表的特點,由於需要模擬約瑟夫環的出列問題,可以採用順序表來實現

線性表,完成出列順序的輸出,核心演算法主要分兩步:

1、確定需要刪除的位置

2、設定並刪除該位置

#include#include using namespace std;

typedef struct rnodelinklist;

linklist *creater(int a,int n)//建立約瑟夫環,l:煉表頭指標,為建立迴圈鍊錶

r->next = head;

return head;

}void joseph(linklist *head,int m)//函式實現剔除過程

l = l->next;

i++;

} cout}int main()

for (i =0;i

約瑟夫環(約瑟夫問題) 採用迴圈單鏈表實現

yuesefuwenti.cpp 定義控制台應用程式的入口點。約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部...

單鏈表實現約瑟夫環

語塞夫環問題 問題來歷 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再...

單鏈表實現約瑟夫環

約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從第乙個人開始報數,數到k的那個人出列 他的下乙個人又從1開始報數,數到k的那個人又出列 依此規律重複下去,直到圓桌只剩下乙個人。那麼如何用單鏈表來實現約瑟夫環呢,首先我們需要構建乙個帶環鍊錶,定義乙個指標c...