我一直看到深度優先搜索的僞代碼,這與我完全混淆了它與我的具體問題的關係。我試圖確定一個'有向圖'是否強連接。Python深度第一次搜索字典
如果我有2串(第一表示源,第二個代表該目的地)和一個可選數目的字典表示邊緣權重:
{'Austin': {'Houston': 300}, 'SanFrancisco': {'Albany': 1000}, 'NewYorkCity': { 'SanDiego': True }}
如何可以實現一些的元件的DFS?我知道我可以從一個頂點'Austin'開始,而'Houston'是另一個頂點。但我看不出任何這在Python代碼
作品就像我有這樣的僞代碼:
function graph_DFS(start):
# Input: start vertex
S = new Stack()
# Mark start as visited
S.push(start)
while S is not empty:
node = S.pop()
# Do something? (e.g. print)
for neighbor in node’s adjacent nodes:
if neighbor not visited:
# Mark neighbor as visited
S.push(neighbor)
我可以看到,我可以通過「奧斯汀」作爲我的開始。但是我如何在世界上設置「奧斯汀」來訪問,以及如何查看與「奧斯汀」相鄰的節點?
另外我怎麼才能使用這種算法來返回真或假如果圖強連接?
我只是很難看到從僞代碼轉移到代碼。感謝任何幫助。
您的數據結構不適合實現一個通用圖,因爲它不允許從一個頂點有多個邊。字典值應該是_lists_的目的地。 – DyZ