物件導向程式設計 約瑟夫問題簡要分析
public class Test1 {
public static void main(String[] args) {
CycLink cycLink=new CycLink();
cycLink.setLen(5);
cycLink.createLink();
cycLink.show();
}
}
class Child{
int no;
Child nextchild=null;
public Child(int no) {
this.no=no;
}
}
class CycLink
{
Child firstChild=null;
int len=0;
Child temp=null;
int k=0;
int m=0;
public void setLen(int len){
this.len=len;
}
//初始化環形連結串列
public void createLink(){
// for(int i=0;i<=len;i++){
// //建立一個小孩
// Child ch=new Child(i);
//
// }
for(int i=0;i<=len;i++){
if (i==1) {
Child ch=new Child(i);
//建立第一個小孩
this.firstChild=ch;
this.temp=ch;
}
else
{
if (i==len) {
Child ch=new Child(i);
temp.nextchild=ch;
temp=ch;
temp.nextchild=this.firstChild;
}
else{
//繼續建立別的小孩
Child ch=new Child(i);
temp.nextchild=ch;
temp=ch;
}
}
}
}//初始化環形表
public void show(){
//定義一個跑龍套的
Child temp=this.firstChild;
do {
System.out.println(temp.no);
temp=temp.nextchild;
} while (temp!=firstChild);
}
public void play(){
Child temp=this.firstChild;
//1 先找到開始數數的人
for (int i = 1; i <k; i++) {
temp=temp.nextchild;
}
while(this.len!=1){
//數m下
for(int j=1;j<m;j++){
temp=temp.nextchild;
}//往後面移了m下
//找到出圈的前一個小孩
Child temp2=temp;
while(temp2.nextchild!=temp){
temp2=temp2.nextchild;
}//temp往前面移了一下
//將數到m的小孩,退出圈 temp2 後面就是temp
temp2.nextchild=temp.nextchild;
//此舉刪除了 temp
temp=temp.nextchild;
this.len--;
}
}
//設定從第幾個開始數數
public void setK(int k){
this.k=k;
}
}
public static void main(String[] args) {
CycLink cycLink=new CycLink();
cycLink.setLen(5);
cycLink.createLink();
cycLink.show();
}
}
class Child{
int no;
Child nextchild=null;
public Child(int no) {
this.no=no;
}
}
class CycLink
{
Child firstChild=null;
int len=0;
Child temp=null;
int k=0;
int m=0;
public void setLen(int len){
this.len=len;
}
//初始化環形連結串列
public void createLink(){
// for(int i=0;i<=len;i++){
// //建立一個小孩
// Child ch=new Child(i);
//
// }
for(int i=0;i<=len;i++){
if (i==1) {
Child ch=new Child(i);
//建立第一個小孩
this.firstChild=ch;
this.temp=ch;
}
else
{
if (i==len) {
Child ch=new Child(i);
temp.nextchild=ch;
temp=ch;
temp.nextchild=this.firstChild;
}
else{
//繼續建立別的小孩
Child ch=new Child(i);
temp.nextchild=ch;
temp=ch;
}
}
}
}//初始化環形表
public void show(){
//定義一個跑龍套的
Child temp=this.firstChild;
do {
System.out.println(temp.no);
temp=temp.nextchild;
} while (temp!=firstChild);
}
public void play(){
Child temp=this.firstChild;
//1 先找到開始數數的人
for (int i = 1; i <k; i++) {
temp=temp.nextchild;
}
while(this.len!=1){
//數m下
for(int j=1;j<m;j++){
temp=temp.nextchild;
}//往後面移了m下
//找到出圈的前一個小孩
Child temp2=temp;
while(temp2.nextchild!=temp){
temp2=temp2.nextchild;
}//temp往前面移了一下
//將數到m的小孩,退出圈 temp2 後面就是temp
temp2.nextchild=temp.nextchild;
//此舉刪除了 temp
temp=temp.nextchild;
this.len--;
}
}
//設定從第幾個開始數數
public void setK(int k){
this.k=k;
}
}
相關文章
- 約瑟夫問題
- 約瑟夫環問題
- 約瑟夫環(約瑟夫問題)求最後出列的人數
- 實驗九 類與物件(一) 程式片段程式設計題 5. 約瑟夫問題2020-12-12物件程式設計
- 約瑟夫問題(丟手絹問題)
- 猴子選大王,約瑟夫問題
- 約瑟夫環問題 猴子選大王問題
- 約瑟夫生者死者遊戲問題遊戲
- 物件導向程式設計物件程式設計
- 1234: 華科版C語言程式設計教程(第二版)習題6.11(約瑟夫問題)C語言程式設計
- Python物件導向程式設計Python物件程式設計
- 程式設計思想 物件導向程式設計物件
- js物件導向程式設計JS物件程式設計
- 十三、物件導向程式設計物件程式設計
- 十六、物件導向程式設計物件程式設計
- Python 物件導向程式設計Python物件程式設計
- 物件導向分析與設計(OOAD)物件
- zcmu1862——zbj的狼人殺(約瑟夫環問題)
- 迴圈連結串列(約瑟夫問題)--python實現Python
- UVALive 3882--And Then There Was One+約瑟夫環問題變形
- JS物件導向程式設計(一):物件JS物件程式設計
- 約瑟夫環遊戲遊戲
- 物件導向程式設計C++物件程式設計C++
- Python OOP 物件導向程式設計PythonOOP物件程式設計
- python技能--物件導向程式設計Python物件程式設計
- javascript:物件導向的程式設計JavaScript物件程式設計
- JS物件導向的程式設計JS物件程式設計
- Javascript 物件導向程式設計(一)JavaScript物件程式設計
- Javascript 物件導向程式設計(二)JavaScript物件程式設計
- Javascript 物件導向程式設計(三)JavaScript物件程式設計
- 06 物件導向程式設計 (續)物件程式設計
- Python物件導向程式設計(1)Python物件程式設計
- Scala的物件導向程式設計物件程式設計
- Python - 物件導向程式設計 - super()Python物件程式設計
- Python - 物件導向程式設計 - @propertyPython物件程式設計
- JavaScript物件導向程式設計理解!JavaScript物件程式設計
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- java環形連結串列約瑟夫環問題筆記Java筆記
- 物件導向程式設計-java語言 第二週程式設計題物件程式設計Java