我正在寻找一个优雅的 Python 程序,它对 DAG 进行 BFS 遍历:
如果 A“依赖于”B,则节点 A 连接到 B ( A->B
)(想想 python 包 Foo “依赖于”Bar: Foo->Bar)。
在大约 7000 个这样的节点的图中,我想对所有节点进行排序,以便在所有可能的情况(i, j)
下1>=i<j<=7000
..depends(Ni, Nj)
为 False。depends(A, B) = True 当且仅当A->B
或 A“依赖于” B .. 并且是出现在排序列表中第 th 位Nx
的节点。x
注意:一个节点可以有多个父节点。例如:A->C 和 B->C。因此,根据上述排序规则,A 和 B 必须在 C 之前。