查找从子级到顶级父级的所有可能路径

时间:2016-06-21 14:29:45

标签: c# graph

My graph looks like this

如何在c#中的图形中找到从子级到顶级父级的所有可能路径?我在图表中有一个顶级父级。所有节点都有自己的id,name和parent 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 个答案:

答案 0 :(得分:0)

您可以找到从1个孩子到顶级父级的所有路径,其中包含BFS:https://en.wikipedia.org/wiki/Breadth-first_search或DFS:https://en.wikipedia.org/wiki/Depth-first_search。 两者都可以递归和迭代地编写。但是当你有一个像Node1这样的循环时要小心 - >节点2 - &gt; Node1然后这些算法永远不会返回

如果您正在寻找迷人方式,您也可以使用dijkstra:https://de.wikipedia.org/wiki/Dijkstra-Algorithmus