1.
剛剛學鍊錶,因此這裡特地用迴圈鍊錶解決此問題。
2.具體程式如下:
//joseph環問題:n個人排隊,以m報數,直到只剩1人,輸出此人編號
//用迴圈鍊錶解決問題
#include#includeint n,m;
int i,k;
//建立結構體
struct student
;void main()
else}}
p1=head;
p2=head;
for(k=0;knext;
}printf("number=%d\n",p1->number);
p2->next=p1->next;
head=p1->next;
p1=head;
p2=head;
k++;
}printf("end number=%d",head->number);
}
3.單鏈表和迴圈鍊錶的區別就在於最後乙個結點->head
本質也是對結構體的運用
迴圈鍊錶Josephus問題(c,cpp
問題描述 設有n個人圍坐在乙個圓桌周圍,現從第s個人開始報數,數到第m個的人出列,然後從出列的下乙個人重新開始報數,數到第m個的人又出列,如此反覆直到所有的人出列為止。josephus.c 1 include 2 include 3 typedef struct lnode 4lnode,linkl...
迴圈鍊錶應用 Josephus
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 ...
鍊錶應用 Josephus問題
據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被人抓到,於是決定了乙個自殺方式 41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所有人...