迴圈鍊錶應用 Josephus

2021-07-10 14:43:17 字數 429 閱讀 4895

#include

using namespace std;

typedef int elemtype;

struct nodetype

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

p->data=n;

p->next=head;

p=head;

while (p->data!=(p->next)->data)   //p->data==(p->next)->data表示只剩下乙個結點

cout}else//找到報m-1的結

}q=p->next;//q為報m的結點

coutk=(q->next)->data;//k為下乙個報數的起點

p->next=q->next;//刪除報m的結點

}cout}

鍊錶應用 Josephus問題

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

迴圈鍊錶Josephus問題(c,cpp

問題描述 設有n個人圍坐在乙個圓桌周圍,現從第s個人開始報數,數到第m個的人出列,然後從出列的下乙個人重新開始報數,數到第m個的人又出列,如此反覆直到所有的人出列為止。josephus.c 1 include 2 include 3 typedef struct lnode 4lnode,linkl...

josephus 約瑟夫的迴圈鍊錶實現

有n個人圍坐在乙個圓桌周圍,現從第s個人開始報數,數到第m 的人出列,然後從出列的下乙個人重新開始報數,數到第m的人 又出列,如此反覆直到所有的人全部出列為止。include include using namespace std typedef struct lnodelnode,josephus...