的所有路徑我有向無環圖,其中每個節點是由一個狀態收集DAG
public class State{
List<State> ForwardStates;
string stateName;
}
其中ForwardStates
是從當前狀態的下一狀態的列表表示。
我有兩個特殊的狀態
State initialState (name=initial)
State finalState (name=final)
我希望能夠找到的所有路徑從初始狀態到最終狀態開始,在
List<List<string>> paths
填充例如,給定圖像下面這樣
paths
應包含值 {{ 「初始」, 「一」, 「最後的」},{ 「初始」, 「B」, 「最後的」}}
我應該如何輕鬆地做到這一點沒有遞歸的C#(因爲圖形可能很大)?
任何算法課程都會教你關於搜索算法 –
看看http://en.wikipedia.org/wiki/Breadth-first_search你學到的第一個 –
如果圖形真的很大,可能的數量路徑可能會呈指數級增長,並且路徑字符串可能不適合磁盤,更不用說內存 – mvp