python 中的多节点图到单节点图
Multiple Nodes graph to single node graph in python
我有一个有向无环图,像这样:
[a, b, c] --> [p, q] --> [p, a, c] --> [x, y, z]
在这里,每个字母表都是一个节点。
从上图中,我想要所有具有单个节点的图的列表。
例如
一张图可以是:a --> p --> a --> y
另一个可以是:b --> p --> p --> z
等
我可以在主图上进行深度优先搜索 (DFS
) 来遍历它,但我不确定如何进行多次 DFS
来提取每个具有单个字符的图
如果你有一个节点集列表,你可以这样做 -
from itertools import product
s =[[1, 2], [3, 4, 5], [6, 7]]
list(product(*s))
输出-
[(1, 3, 6), (1, 3, 7), (1, 4, 6), (1, 4, 7), (1, 5, 6), (1, 5, 7), (2,
3, 6), (2, 3, 7), (2, 4, 6), (2, 4, 7), (2, 5, 6), (2, 5, 7)]
我有一个有向无环图,像这样:
[a, b, c] --> [p, q] --> [p, a, c] --> [x, y, z]
在这里,每个字母表都是一个节点。
从上图中,我想要所有具有单个节点的图的列表。
例如
一张图可以是:a --> p --> a --> y
另一个可以是:b --> p --> p --> z
等
我可以在主图上进行深度优先搜索 (DFS
) 来遍历它,但我不确定如何进行多次 DFS
来提取每个具有单个字符的图
如果你有一个节点集列表,你可以这样做 -
from itertools import product
s =[[1, 2], [3, 4, 5], [6, 7]]
list(product(*s))
输出-
[(1, 3, 6), (1, 3, 7), (1, 4, 6), (1, 4, 7), (1, 5, 6), (1, 5, 7), (2, 3, 6), (2, 3, 7), (2, 4, 6), (2, 4, 7), (2, 5, 6), (2, 5, 7)]