DFS
Visita in profondità, acronimo di Depth-First Search.
- SI parte da un vertice
- Scopri il primo nodo
- Prosegui la visita finché non scopri più nodi; a quel punto torni indietro e vai nel ramo non esplorato
GOES DEEP ⇒ VA IN PROFONDITÀ.
Possibili utilizzi
- backtracking
- ricerca esaustiva di tutti i percorsi in un grafo
Concetti fondamentali
Utilizza uno STACK → LIFO Funziona in O(|V| + |E|) e in spazio O(|V|)
Funzionamento
La logica è:
- Aggiungi il nodo di partenza allo stack
- Mentre lo stack non è vuoto
- prendi un nodo dallo stack
- se non è già stato visitato, allora aggiungilo
- per ogni nodo adiacente (figlio)
- se non è già stato visitato, allora inseriscilo nello stack
- prendi un nodo dallo stack
Implementazione
Approfondimenti: video di Abdul Bari - video di Back To Back SWE