Sie sind auf Seite 1von 7

Recorrido en Profundidad

Algoritmo del Recorrido en Profundidad


Necesitaremos, en algn momento, visitar todos los nodos en un grafo; ya sea para poder imprimirlo, o mostrarlo en pantalla por ejemplo; para ello, uno de los algoritmos que nos permiten hacerlo es el recorrido en profundidad, el cual consiste en lo siguiente: 1. Visitar un nodo cualquiera, y llevarlo a un arreglo de nodos recorridos, y marcar su estado (arreglo de nodos visitados) como visitado. 2. Llevar los nodos que ste puede visitar a una pila auxiliar. 3. Sacar el tope de la pila, y llevarlo al arreglo de nodos recorridos. 4. A partir del nuevo nodo recorrido, repetir los pasos 2 y 3, hasta que quede vaca la pila. 5. Si est vaca la pila y an hay nodos sin visitar, se repite el proceso desde el paso 1 a partir de cualquier nodo no visitado. 6. El procedimiento termina hasta que todos los nodos han sido recorridos

A B

C A B F C D

Matriz de Adyacencia A B C D E F 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0

E
F E

Vrtices = Nodos Visitados =

B X

E X

Nodos Recorridos =

Pila

Se colocadebemos tener aen a B, Realizaremos el Adyacentes Con los Vrtices recorrido Tambin entonces el vrtice B en llena la pila Nodoslos arrays profundidad del grafo dirigdo se el array de en el Recorridos, nuestra disposicin, orden en en laaparecen en el Vector de que primer posicin correspondientes a los vrtices, Para ello, es conveniente Vrtices visitados y los tener los nodoscolocamos un nodos a Tambin, nuestra Matriz de la mano tambin una recorrido,(X) en el arrayPila indicadorel Nodo A de Primero, Adyacencia* (luego se explicar su uso) Nodos Visitados, en la posicin YLlenamos de ste, con unos, las despus en ella, Para comenzar elal el Nodo E correspondiente recorrido, nodo visitado debemos obtener todos (desde el conexiones queun nodo de elegir existen los Luego observamos los nodos Luego, de partida; en nuestro caso, ella nodo en la buscamos de nodo adyacentes,al nodo B (podemos adyacentes fila hacia elel tope B columna) (primer elemento) de la pila, apoyarnos de la matriz de y lo llevamos al adyacencia vector de Nodos Recorridos

A B

C A B C D

Matriz de Adyacencia A B C D E F 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0

F F
D D

E
F E

Vrtices = Nodos Visitados =

B X

E X

F X

Ahora, partiremos del nodo E, buscando sus nodos adyacentes; los cuales son el A, D y F. El nodo A ya est en la pila, as que se ingresarn ahora, los nodos D y F, en ese orden A Pila Nuevo tope de Pila: F, ahora, lo llevamos al array de nodos recorridos, y marcamos su visita

Nodos Recorridos =

A B

C A B F C D

Matriz de Adyacencia A B C D E F 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0

E
F E

Vrtices = Nodos Visitados =

B X

C X

E X

F X

Nodos Recorridos =

D A Pila

Podemos apreciar 4. Marcar su visita entonces, la lgica del funcionamiento del 5. Si an no se han recorrido recorrido: todos los nodos, y el ltimo nodo 1. Buscar los nodos adyacentes al recorrido ya no tiene adyacencia; ltimo nodo recorrido. (F) pasamos a llenar el vector de Nodos Visitados con los nodos a 2. Llevar los nodos adyacentes restantes adentro de la pila; hasta la pila (C) que quede vaca; siguiendo los 3. Llevar 4. pasos 3 y el nodo en el tope de la fila al vector de nodos visitados (C)

A B

C A B F C D

Matriz de Adyacencia A B C D E F 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0

E
F E

Vrtices = Nodos Visitados =

A X

B X

C X

D X

E X

F X

Nodos Recorridos =

D A Pila

Solamente falta llevar los nodos dentro de la pila al arreglo de nodos recorridos, ya que desde el nodo C se regresa hacia el nodo B y no hay ms adyacentes no recorridos.
1. El nodo D

2. Por ltimo, el nodo A

El recorrido final del grafo anterior, por el mtodo en profundidad es el siguiente:

Hemos terminado as, la muestra del recorrido del grafo en profundidad

Das könnte Ihnen auch gefallen