簡體   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