获取可能的路径

问题描述 投票:1回答:1

我有一个简单的数据结构,在有向图中显示了节点:

{
    'node1': [('V1', 'R1')],
    'node2': [('R1', 'R2'), ('R1', 'R3')],
    'node3': [('R2', 'R4'), ('R2', 'R5'), ('R3', 'R4'), ('R3', 'R5')],
    'node4': [('R4', 'Z1')],
    'node5': [('R5', 'Z1')]
}

我想获得从V1到Z的所有可能(定向)路径。例如,路径可能是:

[
    ('V1', 'R1'),
    ('R1', 'R2'),
    ('R2', 'R4'),
    ('R4', 'Z1')
]

但是我在看似基本算法上遇到了麻烦,我认为这涉及递归。

for node, connections in nodes.items():
    for connection in connections:

我从上述类似内容开始,但是我认为这是错误的方法。不使用itertools之类的建议方式是什么?

我有一个简单的数据结构,以有向图显示节点:{'node1':[('V1','R1')],'node2':[('R1','R2'),('R1 ','R3')],'node3':[('R2','R4'),('R2','R5'),('R3','R4'),('...

python algorithm graph-algorithm
1个回答
1
投票

您可以对生成器使用递归:

© www.soinside.com 2019 - 2024. All rights reserved.