它突然出現在我的腦海裏。爲什麼BFS使用2種顏色標記節點,而使用3種顏色的DFS?
爲什麼我們只使用2 BFS圖表顏色traveral都需要DFS
和3?
例如:維基百科:
BFS:
procedure BFS(G,v):
2 create a queue Q
3 enqueue v onto Q
4 mark v
5 while Q is not empty:
6 t ← Q.dequeue()
7 if t is what we are looking for:
8 return t
9 for all edges e in G.adjacentEdges(t) do
12 u ← G.adjacentVertex(t,e)
13 if u is not marked:
14 **mark u**
15 enqueue u onto Q
16 return none
DFS:
procedure DFS(G,v):
2 label v **as explored**
3 for all edges e in G.adjacentEdges(v) do
4 if edge e is unexplored then
5 w ← G.adjacentVertex(v,e)
6 if vertex w is unexplored then
7 label e as a **discovery edge**
8 recursively call DFS(G,w)
9 else
10 label e as a **back edge**
爲什麼兩種顏色不夠的DFS? 爲什麼BFS有3種顏色的還原劑?
這裏是另一個BFS(這次3色):
你能提供一個關於這方面的參考? BFS和DFS需要什麼樣的顏色才能說出兩種顏色? – templatetypedef
維基百科。編輯mt q –