Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cursada 2020
1. Ejemplos y terminología
2. Representaciones
3. Recorridos
Aplicaciones
1 2 4 3 6 7
1 2 4 7
1 2 5 7
1 3 4 2 5 7
1 3 4 7
1 3 6 7
1 4 2 5 7
1 4 3 6 7
1 4 7
1 2 4 3 6 7 20
1 2 4 7 25 25
1 2 5 7 20 20
1 3 4 2 5 7 15
1 3 4 7 15 15
1 3 6 7 15
1 4 2 5 7 10
1 4 3 6 7 10
1 4 7 10
1 2 4 3 6 7 20 6
1 2 4 7 25 25 5
1 2 5 7 20 20 6
1 3 4 2 5 7 15 8
1 3 4 7 15 15 8
1 3 6 7 15 8
1 4 2 5 7 10 11
1 4 3 6 7 10 11
1 4 7 10 11
1 2 4 3 6 7 20 6
1 2 4 7 25 25 5 5
1 2 5 7 20 20 6 6
1 3 4 2 5 7 15 8
1 3 4 7 15 15 8 8
1 3 6 7 15 8
1 4 2 5 7 10 11
1 4 3 6 7 10 11
1 4 7 10 11
1 2 4 3 6 7 20 6
1 2 4 7 25 25 5 5
1 2 5 7 20 20 6 6
1 3 4 2 5 7 15 8
1 3 4 7 15 15 8 8
1 3 6 7 15 8
1 4 2 5 7 10 11
1 4 3 6 7 10 11
1 4 7 10 11
1 2 4 3 6 7 20 6
1 2 4 7 25 25 5 5
1 2 5 7 20 20 6 6
1 3 4 2 5 7 15 8
1 3 4 7 15 15 8 8
1 3 6 7 15 8
1 4 2 5 7 10 11
1 4 3 6 7 10 11
1 4 7 10 11
Cuando se visita un nuevo vértice, explorar cada camino que salga de él.
• Si desde u no fueran alcanzables todos los nodos del grafo: volver a (2),
elegir un nuevo vértice de partida v no visitado, y repetir el proceso hasta que
se hayan recorrido todos los vértices.
main:dfs (grafo)
inicializar marca en false (arreglo de booleanos);
para cada vértice v del grafo
si v no está visitado
dfs(v);
Estrategia:
Cola:
D C H B R T A
b c
1 2
4
6 e
3 9 d
7
5 a
8
Grafo dirigido y no
Grafo no dirigido y no Conexo fuertemente Conexo
Grafo no dirigido y no
2º
Conexo 2 5 8º
arcos del
7 3º 6 6º
árbol
9 9º
3 4º 8 5º
arcos de retroceso:
aparecen cuando el
vértice está visitado
b c arco de avance
1º a
2º b (o forward)
e arco de 3º c
d retroceso
(o back)
a
4º d
arco de cruce
Grafo dirigido y no (o cross)
fuertemente Conexo 5º
e
• Arcos forward: son los arcos uv que no están en el bosque, donde v es
descendiente, pero no es hijo en el árbol.
• Arcos cross: son todos los otros arcos uv, donde v no es ni antecesor ni
descendiente de u. Son arcos que pueden ir entre vértices del mismo árbol o
entre vértices de diferentes árboles en el bosque depth-first-search
1 3 a) 1 arco de avance
b) 2 arcos de avance
8 c) más de 2 arcos de avance
2 d) Ninguna de las opciones
4 6
5 7
1 3
a) 1 arco de avance
8
b) 2 arcos de avance
2 c) más de 2 arcos de avance
4 6
d) Ninguna de las opciones
5 7
1 3 a) 1 arco de avance
b) 2 arcos de avance
8 c) más de 2 arcos de avance
2 d) Ninguna de las opciones
4 6
5 7
3 6 9 5
7
• Si el grafo es conexo
Un recorrido desde cualquier vértice
Visitará a TODOS los vértices del grafo
• Si no lo es
Partiendo de un vértice, tendremos una componente conexa
→ conjunto de vértices recorrido
Para descubrir otras
o Repetir recorrido desde un vértice no visitado
o Hasta que todos los vértices hayan sido visitados
C D
C D
E C D A B E C D
Conjunto recorrido =
Recorrido desde B Componente
Conjunto de Vértices Conexa 2
Es CONEXO B A
3. Aplicar DFS (GR) comenzando por los vértices de mayor rótulo (tope de la
pila).
• Se recorren todas las aristas una vez para crear el grafo reverso
O(|V| + |E|)