2014-02-09 18 views
0
def dfs(graph,start): 
    path = [] 
    stack = [start] 
    while stack != []: 
     v = stack.pop() 
     if v not in path: 
      path.append(v) 
     for w in reversed(graph[v]): 
      if w not in path: 
       stack.append(w) 
    return path 

以上節點是如何使用堆棧BFS困難,誰能幫我找出哪些呢在理解一個BFS代碼

for w in reversed(graph[v]): 

是什麼意思?我不明白,謝謝。

+0

您是在編碼廣度優先搜索(BFS)還是深度優先搜索(DFS)? – superjump

+0

它應該是一個DFS ...有一個錯誤的帖子,謝謝。 – ilovecp3

回答

1

w是v的所有邊,它是我們要搜索的下一個頂點。 ,然後在內部循環中,我們將那些尚未處於路徑中的w追加到堆棧中。

+0

謝謝,我明白了! – ilovecp3