Cette idée m'est soudain venue à l'esprit.
Pourquoi n'utilise-t-on que 2 couleurs dans les graphes BFS traveral ?
et 3 sont nécessaires pour DFS ?
par exemple : wikipedia :
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**
Pourquoi 2 couleurs ne suffisent-elles pas pour DFS ? Pourquoi 3 couleurs sont-elles suffisantes pour BFS ?
voici un autre BFS (cette fois-ci en 3 couleurs) :