[英]Is it possible to traverse all connected nodes in a graph with DFS when cycles are present?
[英]how to store a graph in a data structure when there are multiple ways to traverse two nodes
我想存储一个由节点和边组成的有向图来设计算法。 除了传统的设置之外,还有多种方式可以在节点之间移动。 假设我选择一对节点,即A
和B
。 我可以乘汽车或卡车从A
到B
我的目标是使用广度优先搜索 (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.