DFS
Algoritmo de recorrido de grafos — bajar lo más hondo posible por cada rama antes de retroceder. Se implementa de forma recursiva o con una pila.
Usos: ordenación topológica, detección de ciclos, hallar componentes conexas, resolver laberintos, pasadas de compilador. Los algoritmos de Tarjan para componentes fuertemente conexas y puentes se apoyan en DFS. A diferencia de BFS, DFS gasta menos memoria (O(d), la profundidad), pero no encuentra caminos mínimos. La versión iterativa con pila evita el desbordamiento de pila en grafos profundos. git log recorre el DAG de commits mediante DFS.