Exercices Algorithmes Parcours en profondeur (DFS)
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Parcours en profondeur (DFS)

Le DFS (Depth-First Search), c'est l'oppose du BFS. Au lieu d'explorer niveau par niveau, tu explores le plus loin possible dans une direction avant de revenir en arriere. C'est comme explorer un labyrinthe : tu avances dans un couloir jusqu'au bout, puis tu fais demi-tour pour essayer un autre chemin.

La difference avec le BFS tient a une seule chose : au lieu d'une file (FIFO), on utilise une pile (LIFO, dernier entre premier sorti). En Python, une simple liste avec pop() fait l'affaire.

Attention : avec la pile, il faut vérifier si le noeud a deja ete visite au moment ou tu le depiles, pas quand tu l'empiles (car un noeud peut etre empile plusieurs fois).

graphe = {'A': ['B', 'C'], 'B': ['A', 'D'], 'C': ['A'], 'D': ['B']}
dfs(graphe, 'A') visite tous les noeuds

Écris une fonction dfs(graphe, depart) en version iterative (avec une pile).

Tests (2/4)

DFS visite tout
g = {'A': ['B', 'C'], 'B': ['A', 'D'], 'C': ['A'], 'D': ['B']}
résultat = dfs(g, 'A')
assert set(résultat) == {'A', 'B', 'C', 'D'}
Depart inclus
g = {'A': ['B'], 'B': ['A']}
résultat = dfs(g, 'A')
assert résultat[0] == 'A'

+ 0 tests cachés

Indices (3 disponibles)

solution.py