Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pydot查找开始、结束和循环_Python_Graphviz_Pydot - Fatal编程技术网

Python 使用pydot查找开始、结束和循环

Python 使用pydot查找开始、结束和循环,python,graphviz,pydot,Python,Graphviz,Pydot,有没有办法在pydot中实现这一点 以以下为例: [输出的点文件] strict graph g{ "A" -> "B"; "B" -> "C"; "C" -> "D"; "D" -> "E"; } strict graph g{ "A" -> "B"; "B" -> "C"; "C" -> "A"; } [Python] print(num.start) >>> A print(num.steps) >>> ["

有没有办法在pydot中实现这一点

以以下为例:

[输出的点文件]

strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "D";
"D" -> "E";
}
strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "A";
}
[Python]

print(num.start)
>>> A
print(num.steps)
>>> ["a,b","b,c","c,d","d,e"]
print(num.end)
>>> E
if num["A"] == num.loop:
print("[%s] loop detected")%(num["A"])
或在下列情况下:

[输出的点文件]

strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "D";
"D" -> "E";
}
strict graph g{
"A" -> "B";
"B" -> "C";
"C" -> "A";
}
[Python]

print(num.start)
>>> A
print(num.steps)
>>> ["a,b","b,c","c,d","d,e"]
print(num.end)
>>> E
if num["A"] == num.loop:
print("[%s] loop detected")%(num["A"])

您可以通过
graph.get\u edge\u list()
实现标准的深度优先搜索,以查找节点之间的最短路径。查找循环同样是通过使用完成的。有关如何在两个节点之间执行最短路径的源代码,请参阅本文


如果您正在寻找pydot库,请为您执行此操作,您可能会运气不佳

Pydot可以编写点文件,但它不用于分析图形

你想要的是。它可以找到可到达的节点并进行拓扑排序


在wikipedia上查找图形的术语,NetworkX可以完成其余的工作。

作为将来的参考,我有一个使用NetworkX识别点状图中周期的python脚本示例:感谢Jochen为我提供了脚本的链接。