En este caso vamos a caminar hasta el último de los adyacentes de la rama más a la izquierda, para ir subieno y visitando sus ramas derechas.
Pseudo-código
DFS(int inicio, Grafo g, int*& visitados){
visitados[inicio] = 1;
listaAdyacentes = obtenerListaAdyacentes(g, inicio);
while(!esVacia(listaAdyacentes){
w = listaPrimero(listaAdyacentes);
listaAdyacentes = listaResto(listaAdyacentes);
if(!visitados[w]){
!visitados[w] = 1;
DFS(w, g);
}
}
}
void Recorrido_DFS(Grafo g){
int n = cantidadNodos(g);
for(i=0; ivisitados[i] = 0;
}
for(i=0; iif(!visitados[i])
DFS(i, g, visitados);
{
}
}
No hay comentarios:
Publicar un comentario