2016-06-21 125 views
-1

My graph looks like this查找孩子所有可能的路徑到頂級父

如何找到孩子的頂級父在C#中的圖形所有可能的路徑?我在圖中有一個頂級父項。所有節點都有自己的ID,名稱和父母ID。最頂層的父級擁有零,而一個孩子可以有多個父母。 [我必須找到從H到A的所有路徑 HEBA,HGDA和HECA 我的節點如下。

class Node 
    { 
     public int Id { get; set; } 
     public List<int> ParentId { get; set; } 
     public string Name { get; set; } 
    } 
+1

你可以發佈一些代碼? – Thomas

+1

你用什麼數據結構來表示有向圖? – Codor

+1

@Thomas我更新了問題。 – pariwartan

回答

0

你可以找到從1名兒童的所有路徑的頂層父,用BFS:https://en.wikipedia.org/wiki/Breadth-first_search或者也可以是DFS:https://en.wikipedia.org/wiki/Depth-first_search。 兩者都可以遞歸地和迭代地編寫。但要小心,當你有一個像節點1環 - >節點2 - >節點1,那麼這些算法不會返回

如果您正在尋找你也可以使用Dijkstra算法的fastes方式:https://de.wikipedia.org/wiki/Dijkstra-Algorithmus

+0

我無法存儲路徑。你能給我一個樣本嗎? – pariwartan

+0

Danke aber das ist in Deutsch。 – pariwartan

+0

對不起...這裏是英文鏈接:https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm – Thomas