繁体   English   中英

当有多种方式遍历两个节点时如何将图存储在数据结构中

[英]how to store a graph in a data structure when there are multiple ways to traverse two nodes

我想存储一个由节点和边组成的有向图来设计算法。 除了传统的设置之外,还有多种方式可以在节点之间移动。 假设我选择一对节点,即AB 我可以乘汽车或卡车从AB 我的目标是使用广度优先搜索 (BFS) 找到给定两个节点的所有可能路径。 我想知道如何存储我的数据集以有效地编码 BFS。

在传统设置中,我将网络存储在defaultdict中,如下所示。

class Network:
    def __init__(self, nodeNumber):
        self.V = nodeNumber
        self.network= defaultdict(list)
    def edgeConstruct(self, i, j):
        self.network[i].append(j)

我的问题是,如果每两个节点之间有多种旅行方式,那么存储我的网络的最佳方式是什么。 我的目标是找到所有可能的方式,使用不同的旅行方式从一个地点到另一个地点。

A B "car"
A B "truck"
B C "car"
B C "bus"
B C "bicycle"
...

您可以为每个行驶方法定义一条边,并将该行驶方法指定为边的标签。

class Network:
    def __init__(self, nodeNumber):
        self.V = nodeNumber
        self.network= defaultdict(list)
    def edgeConstruct(self, i, j, travelmethod):
        self.network[i].append((j, travelmethod))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM