Java語言解決約瑟夫環問題 鍊錶實現

2021-07-07 03:41:48 字數 579 閱讀 5858

思想:將資料儲存到乙個鍊錶中,此鍊錶首尾相連形成乙個環,刪除指定的數即是刪除相應的節點,直到鍊錶為空為止。

**如下:

先寫乙個節點類:

class node

}再寫乙個circle類,此類有兩個方法,add方法形成乙個首尾相連的鍊錶,儲存資料;用delete方法來刪除相應的節點,即刪除相應的數

class circle

node tmp  = head;

while(tmp.next!=null&&n>1)

tmp.next = newnode;

n--;

if(n==1)

}public void delete(int m)

else

prenode.next = curnode.next;

head = curnode.next;

system.out.println(curnode.data);}}

}最後test類完成測試

public  class test

while(a>0)}}

執行結果:101

3629

5748

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

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

使用鍊錶解決約瑟夫環問題

1139 約瑟夫環問題 時間限制 500ms 記憶體限制 65536k 提交次數 157 通過次數 79 題型 程式設計題 語言 g gcc description 約瑟夫 josephus 環是這樣的 假設有n個小孩圍坐成乙個圓圈,並從1開始依次給每個小孩編上號碼。老師指定從第s位小孩起從1開始報...

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

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