迭代解法見:leetcode-josephu問題(圓圈中最後剩下的數字)
約瑟夫用單鏈表解決比較簡單,只需要定義兩個指標即可,處理方法見deal()方法。除此之外詳細的節點定義及構建已給出。
public
class
josephu2
}class
sll/*
* @description: 構建單向環形鏈
* @author: yuanbaoqiang
* @date: 2020/8/25 20:56
* @param
* @return: void
*/public
void
construct()
cur.next = first;}/*
* @description: 新增節點
* @author: yuanbaoqiang
* @date: 2020/8/25 10:33
* @param node
* @return: void
*/public
void
add(node node)
cur = cur.next;
} cur.next = node;}/*
* @description: 遍歷陣列
* @author: yuanbaoqiang
* @date: 2020/8/25 20:37
* @param
* @return: void
*/public
void
list()
system.out.
printf
("節點 %d\n"
,cur.val)
; cur = cur.next;}}
/* * @description: 處理約瑟夫問題
* @author: yuanbaoqiang
* @date: 2020/8/25 21:03
* @param
* @return: void
*/public
intdeal
(int m)
while
(true
)// cur 和 helper同時後移 m-1次
// cur到達目標位置
for(
int i =
0; i < m -
1; i++
) helper.next = cur.next;
cur = cur.next;
}return cur.val;}}
// 定義節點
class
node
@override
public string tostring()
';}}
資料結構鐵軌問題 資料結構練習專題
下面我給大家帶來一些資料結構的題,供大家欣賞 一 棧 鐵軌試題描述 某城市有乙個火車站,鐵軌鋪設如圖所示,有n節車廂從a方向駛入車站,按進站順序編號為1至n。你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛出車站。為了重組車廂,你可以借助中轉站c。這是乙個可以停放任意多節車廂的車站,...
資料結構 迷宮問題
迷宮問題的總體思路是,從迷宮的入口出發,沿著某乙個方向向前試探,若能夠行得通,則繼續往前走,否則原來返回,再換另乙個方向繼續試探,直到所有可能的通路都被試探過,為了保證在任何乙個位置都能夠原來返回,需要設定乙個堆疊結構來儲存從入口到當前位置的路徑。maze.h pragma once include...
資料結構 迷宮問題
設計乙個迷宮求解程式,要求如下 以m n表示長方陣表示迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。能任意設定的迷宮 include using namespace std define maxsize 1000 int mg maxsize maxsize typedef structb...