用迴圈鍊錶解決約瑟夫環問題

2021-06-09 14:49:46 字數 632 閱讀 9247

題目見

解法:#includeusing namespace std;

templatestruct node;};

class nodelist

} void insert(node* newnode)

else

}node* josephusremove(int interval)

if(head==p) head = p->next;

if(rear==p) rear = q;

q->next=p->next;

delete p;

p = q->next;

} return p;

} bool isempty()

~nodelist()

delete p;

} }private:

node* head;

node* rear;

};int main()

{ int m,n;

while(cin>>n>>m)

{ if(n==0&&m==0)break;

nodelist list(n);

node* p = list.josephusremove(m);

cout

用單向迴圈鍊錶解決約瑟夫環問題

設有n個人圍坐一圈,現以某個人開始報數,數到m的人出列,接著從出列的下乙個人開始重新報數,數到m的人又出列,如此下去,直到所有人都出列為止.按出列順序輸出.這段 是從網上找來的,在此特別說明!include stdlib.h struct ele main u link h 末表元後繼首表元,形成環...

迴圈鍊錶解決約瑟夫環問題

題目要求的約瑟夫環操作 編號是1,2,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人...

迴圈鍊錶解決約瑟夫環問題

問題描述 假設有n個小孩按照序號1,2,n圍坐成一圈,從第乙個小孩開始報數,每次報到n的人退出,接著從下乙個人重新開始從1開始報數,下一次再報到n的人退出,求最後乙個留下的人 小孩的個數n,和報數的n由鍵盤輸入 輸出留下人的序號 乙個迴圈鍊錶都寫得除出了很多問題,改了半天才出來 include in...