jueves, 26 de febrero de 2009

DFS - Depth First Search

Es muy parecido al BFS, pero más simple..

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; i visitados[i] = 0;
}
for(i=0; i if(!visitados[i])
DFS(i, g, visitados);
{
}
}

No hay comentarios: