Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Recorrer un grafo consiste en “visitar”cada uno de los nodos a través de las aristas del
mismo. Se trata de realizar recorridos de grafos de manera eficiente. Para ello, se pondrá
una marca en un nodo en el momento en que es visitado, de tal manera que, inicialmente,
no está marcado ningún nodo del grafo.
Detallaremos el proceso para grafos no dirigidos, observando que para el caso dirigido
el proceso es análogo, sólo cambia el significado del concepto de adyacencia.
• Se marca el nodo v.
• Si todos los nodos adyacentes a v están marcados, entonces TERMINAR; si no,
marcar todos los nodos v1 , v2 , . . . , vk adyacentes a v que no estén marcados.
• Repetir el proceso con los nodos adyacentes a los nodos que se han marcado en el
paso anterior.
Si G es conexo (es decir, si dos vértices cualesquiera de G siempre están conectados por
un camino), entonces BF S(G, v) visita todos los nodos y aristas del grafo.
A diferencia de lo que ocurrı́a con el recorrido en profundidad, DF S, el recorrido en
anchura, BF S, no tiene naturaleza recursiva. Por ello, es posible describir un esquema
algorı́tmico iterativo del recorrido en anchura usando una cola que permita controlar las
visitas a los nodos.
procedimiento BF S(G, v)
marcar (v)
poner (v) en una COLA
mientras la COLA no sea vacia hacer
quitar el primer elemento w de la COLA
para cada vertice x adyacente a w hacer
si x no esta marcado entonces
marcar x
poner x en la COLA
Teorema 1: Sea G = (V, E) un grafo no dirigido y conexo. Para cada v ∈ V se
verifica:
1. El procedimiento BF S(G, v) para.
2. Tras la ejecución del procedimiento BF S(G, v), todos los nodos de G están marca-
dos.
Sea G = (V, E) un grafo no dirigido arbitrario. Para realizar un recorrido en anchura
en G se procede como sigue:
1. Se elige un nodo, v, no marcado.
2. Se ejecuta el procedimiento BF S(G, v).
3. Si no quedan nodos no marcados, el proceso TERMINA; si no, se vuelve al paso 1.
procedimiento BF S(G)
para cada nodo no marcado, v, hacer
BF S(G, v)
Teorema 2: Sea G = (V, E) un grafo no dirigido. El coste del algoritmo BF S(G) es del
orden θ(máx{|V |, |E|}).