[英]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.