突然頭に浮かびました。
BFSグラフトラベラルで2色のみを使用するのはなぜですか
と3はDFSに必要ですか?
例:ウィキペディアから:
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には2色では不十分なのはなぜですか?なぜ3色がBFSに冗長なのですか?
ここに別のBFS(今回は3色)があります: