使用順序錶類SeqList求解約瑟夫環問題

2021-06-26 13:17:00 字數 968 閱讀 6234

約瑟夫環(約瑟夫問題)是乙個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。

順序錶類seqlist參考:

約瑟夫環運作如下:

1、一群人圍在一起坐成環狀(如:n)

2、從某個編號開始報數(如:k)

3、數到某個數(如:m)的時候,此人出列,下乙個人重新報數

4、一直迴圈,直到所有人出列,約瑟夫環結束

下面是使用順序錶類seqlist求解約瑟夫環問題的**:

package com.clarck.datastructure.linear;

/** * 使用順序錶類seqlist求解約瑟夫環問題。

* * @author clarck

* */

public class josephus

system.out

.print("約瑟夫環(" + number + "," + start + "," + distance + "),");

system.out.println(list.tostring());

int i = start;

while (list.length() > 1)

system.out.println("被赦免者是" + list.get(0).tostring());

}public static void main(string args)

}

執行結果如下:

約瑟夫環(5,0,2),(a, b, c, d, e) 

刪除b,(a, c, d, e)

刪除d,(a, c, e)

刪除a,(c, e)

刪除e,(c)

被赦免者是c

SeqList 順序表的實現

順序表也就是我們常說的陣列,今天就是把對於陣列 的各種操作封裝成類,下面就來看具體的實現 我們先來看test.h的內容 ifndef test h define test h include include include using namespace std templateclass seql...

1 1順序表 SeqList 的實現

標頭檔案 es seqlist.h ifndef es seqlist h define es seqlist h define es seqlist min capacity 8 線性表的初始容量 typedef void es seqlist 函式描述 返回乙個空的線性表 輸入引數 輸出引數 返...

約瑟夫問題 順序表求解

include stdio.h include stdlib.h define maxsize 100 typedef struct node seqlist,pseqlist 定義乙個順序表 pseqlist init seqlist 順序表初始化 printf creat error retur...