有没有办法在pydot中实现这个目标?
采用以下示例:
[输出的点文件]
strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "D";
"D" -> "E";
}
[Python的]
print(num.start)
>>> A
print(num.steps)
>>> ["a,b","b,c","c,d","d,e"]
print(num.end)
>>> E
或以下情况:
[输出的点文件]
strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "A";
}
[Python的]
if num["A"] == num.loop:
print("[%s] loop detected")%(num["A"])
答案 0 :(得分:1)
您有整个图形结构,通过graph.get_edge_list()
,您可以实现标准深度优先搜索,以查找节点之间的最短路径。查找循环同样使用standard graph algorithms完成。有关如何在两个节点之间执行最短路径的源代码,请参阅Graph implementations in Python上的这篇文章。
如果你正在寻找pydot库,请为你做这件事,你可能会运气不好。
答案 1 :(得分:0)
Pydot可以写点文件,但不能用于分析图形。
您想要NetworkX。它可以read and write dot files,find circles找到可到达的节点并进行拓扑排序。
在维基百科上查找图表的术语,NetworkX可以完成剩下的工作。