package com.structure.demo;import android.os.bundle;
import android.util.log;
public class josephactivity extends activity
}class circlesinglelinkedlist
for (int i = 1; i <= nums; i++) else }}
public void show()
boy curboy = first;
while (true)
curboy = curboy.next;}}
/*** 約瑟夫問題的小孩出圈
* @param startno 開始的小孩的編號
* @param countno 每隔幾個小孩出圈
* @param nums 一共的小孩的個數
*/public void countboy(int startno, int countno, int nums)
//建立輔助指標幫助小孩出圈
boy helper = first;
//建立乙個輔助指標,指向鍊錶的最後
while (true)
helper = helper.next;
}//小孩報數前,先讓first和helper移動到開始報數的位置(startno)
for (int i = 0; i < startno - 1; i++)
//當小孩報數時先讓first和helper同時移動countnum-1次,然後出圈
while (true)
for (int i = 0; i < countno - 1; i++)
log.i("tag", "出圈的小孩的編號是" + first.no);
first = first.next;
helper.next = first;}}
}class boy
}
資料結構與演算法 約瑟夫問題
問題描述 編號為1 2 n 的小朋友圍成一圈,從編號為k 1 k n 的小朋友開始報數,報到m的小朋友出列,該小朋友的下一位重新開始從0開始報數,數到m的小朋友再次出列,依次類推,直到所有小朋友出列。由此產生乙個出列編號的佇列。package 鍊錶 author lyq on 2019 12 23 ...
資料結構與演算法 約瑟夫問題
已知n個人 以編號1,2,3,n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從k開始報數,數到m的那個人又出列 一詞重複下去。直到圓桌的人全部出列。試用c 程式設計實現 include include include define error 0 type...
資料結構 約瑟夫問題
約瑟夫問題 上課結束,大家聽說第一周沒有程式設計題目,立刻就被鄙視了,為了糾正這個錯誤,咱們本週就來做點簡單題目。本題要求用迴圈鍊錶實現 約瑟夫問題是乙個經典的問題。已知n個人 不妨分別以編號1,2,3,n 代表 圍坐在一張圓桌周圍,從編號為 k 的人開始,從1開始順時針報數1,2,3,順時針數到m...