單向環裝鍊錶操作以及約瑟夫問題求解

2021-10-05 09:20:29 字數 2371 閱讀 8681

//構建節點

class item

public int getno()

public void setno(int no)

public item getnext()

public void setnext(item next)

@override

public string tostring()

}

//構建josephu鍊錶

class josephulinklistelse else

}} }

//遍歷

public void list()

item curitem = first;

while (true) else

} } /**

* * @param startitem 第幾個開始

* @param count 樹幾下

* @param nums 一共幾個人

*/public void countitems(int startitem,int count,int nums )

//定義輔助變數,指向環狀鍊錶尾部

item helper = first;

while(true)

helper = helper.getnext();

} //第幾個開始 firse和helper 一起移動(startitem-1)下

for(int i = 0; i < startitem-1; i++)

//開始迴圈數數並列印

while(true)

//數count下 firse和helper 一起移動(count-1)下

for(int i = 0; i < count-1; i++)

//列印節點資料並刪除節點

system.out.printf("josephu列印資料:%d\n",first.getno());

//並刪除節點

first = first.getnext();

helper.setnext(first);

} //列印最後乙個節點

system.out.printf("josephu列印資料:%d\n",first.getno());

}}

1、首先定義輸入引數:一共幾個同學nums,從第幾個開始startitem,每次數幾下count;

2、定義輔助變數/指標:helper指向尾部,即first指標的前乙個節點,作用:用於刪除節點(helper指向待刪除節點的前乙個節點)

3、先讓helper和firse指標同時移動(startitem-1)下,到開始同學的位置。

4、開始玩遊戲,讓同學數count下,同時first和helper指標移動(count-1)下,然後列印first指標指向節點的資訊,然後刪除first指標指向的節點:

first = first.next;

helper.next = first;

5、first指向的同學繼續玩遊戲,重複第四步驟,直到剩下最後乙個同學。

public class josephulinklistdemo 

}

列印環裝鍊錶資料:item的no:1

列印環裝鍊錶資料:item的no:2

列印環裝鍊錶資料:item的no:3

列印環裝鍊錶資料:item的no:4

列印環裝鍊錶資料:item的no:5

列印環裝鍊錶資料:item的no:6

列印環裝鍊錶資料:item的no:7

列印環裝鍊錶資料:item的no:8

列印環裝鍊錶資料:item的no:9

列印環裝鍊錶資料:item的no:10

列印環裝鍊錶資料:item的no:11

列印環裝鍊錶資料:item的no:12

列印環裝鍊錶資料:item的no:13

列印環裝鍊錶資料:item的no:14

列印環裝鍊錶資料:item的no:15

josephu列印資料:2

josephu列印資料:4

josephu列印資料:6

josephu列印資料:8

josephu列印資料:10

josephu列印資料:12

josephu列印資料:14

josephu列印資料:1

josephu列印資料:5

josephu列印資料:9

josephu列印資料:13

josephu列印資料:3

josephu列印資料:11

josephu列印資料:7

josephu列印資料:15

環型單向鍊錶 約瑟夫問題

josephu問 題為 設編號為1,2,n的n個人圍坐 圈,約定編號為k 1 k n 的人從1開始報數,數到 m的那個人出列,它的下一位又從1開始報數,數到m的那個人又出列,依次類推,直到所有人出列為止,由此 產生 乙個出隊編號的序列。用乙個不帶頭結點的迴圈鍊錶來處理josephu問題 先構成 乙個...

單向迴圈鍊錶 約瑟夫環

寫個約瑟夫環,檢驗一下自己的學習狀況.include define elemtype int typedef struct lnodesqlist void initlist sqlist l,elemtype n void round sqlist l,int m,int n int main v...

約瑟夫 環 問題 Josephu 單向環形鍊錶

建立人 wdl 建立時間 2021 3 19 描述 public class josepfu 建立乙個環形的單向鍊錶 class circlesinglelinkedlist boy curboy null 輔助指標,幫助我們構建環形鍊錶 使用for來建立我們的環形鍊錶 for int i 1 i ...