#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...