如何在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; }
}
答案 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