Non ho capito bene una cosa.
La visita in profondità deve visitare tutti i nodi, partendo dalla radice, allontanandosi sempre di più dalla radice.
Però l' algoritmo della visita in profondità è questo:
-Visita la radice;
-Per ogni nodo adiacente, se non è già stato visitato, visitalo (ricorsivo).
Ma in questo modo non è detto che si visitino i nodi allontanandosi sempre di più dalla radice, perchè se io ad esempio ho i nodo A,B,C (in un grafo non orientato).
Stabilisco che A e B sono collegati, A e C sono collegati, B e C sono collegati.
Allora la visita dipenderà da quale nodo adiacente viene scelto per primo, applico l' algoritmo:
-Visito A;
-B e C sono adiacenti, supponiamo venga scelto prima C, allora visito C;
-Poi visito B.
Però in questo caso i nodi non sono stati visitati allontanandosi sempre di più dalla radice.
Questa è allora considerata una visita dfs o l' algoritmo è sbagliato? Se si, come fare per evitare di "riavvicinarsi" alla radice visitandoli tutti in ordine di distanza crescente dalla radice?