Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es...

43
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Transcript of Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es...

Page 1: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Árboles

Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Page 2: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Los bosques de árboles son un caso similar a los árboles, son acíclicos, pero no son conexos

Bosques

Page 3: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Grafo Conexo

• Un grafo conexo es un grafo no dirigido de modo que

para cualquier par de nodos existe al menos un camino

que los une".

Page 4: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Page 5: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Árbol enraizado

• Un árbol enraizado es un árbol libre con un vértice (o nodo) distinguido denominado raíz.

Page 6: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Si existe un camino de un nodo x a un nodo y en un árbol T, se dice que x es antecesor de y, y que y es sucesor de x.

Page 7: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Si (x, y) es el último arco en el camino desde la raíz r del árbol T hasta el nodo y, entonces x es el padre de y, e y es el hijo de x.

• La raíz es el único nodo en T que no tiene padre.

Page 8: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Si dos nodos tienen el mismo padre son hermanos.

Page 9: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Page 10: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Un nodo sin hijos lo denominaremos hoja.

• El resto son nodos internos.

• El grado de un nodo es el número de hijos que tiene.

Page 11: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Se llama profundidad de un nodo a la longitud del camino desde la raíz hacia ese nodo.

• La altura de un árbol es la profundidad del nodo más profundo.

Page 12: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

ÁRBOLES BINARIOS

Un árbol binario es un árbol en el que el máximo número de hijos de cada nodo es 2 (hijo izquierdo e hijo derecho).

Page 13: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Representación de expresiones algebraicas ((a-6)*b)/(c-a)

Page 14: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Árbol y árbol ordenado

Page 15: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Un árbol binario es:–Lleno si todos los nodos tienen

2 hijos no vacíos excepto los del último nivel que son hojas.

Page 16: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

–Completo•cada nivel i, o<i<h-1 tiene 2 nodos

•Los nodos del nivel h-1 con hijos están a la izquierda.

•No existen hijos únicos

Page 17: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Un árbol binario es:

•Homogéneo si cada nodo tiene 0 o 2 hijos

Page 18: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorridos de árboles binarios

• A veces puede interesar un recorrido sistemático y eficiente de todos los nodos del árbol

Page 19: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Page 20: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Coste de todos los algoritmos (n), siendo n el número de nodos del árbol después de la llamada inicial, la función se llama recursivamente exactamente 2 veces para cada nodo del árbol: una vez para su hijo izquierdo y otra para su hijo derecho.

Page 21: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorridos de árboles binarios: Inorden

• La clave de la raíz se imprime entre los valores de su subárbol izquierdo y derecho.

Page 22: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Inorden

Page 23: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorridos de árboles binariosPostorden

• La clave de la raíz se imprime después de los valores de sus subárboles

Page 24: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Postorden

Page 25: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorrido de árboles binarios: Preorden

• La clave de la raíz se imprime antes de los valores de sus subárboles.

Page 26: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorrido en preorden

Page 27: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Ejemplo de árboles binarios: árbol de expresiones

• Utilización de la estructura AB para representar expresiones aritméticas con operadores binarios

Page 28: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Raíz: operador principal

• Nodos internos: operadores de subexpresiones

• Hojas: operandos

• (niveles: precedencia relativa de evaluación)

Page 29: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Page 30: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorridos de grafos

• Método para recorrer de forma sistemática y eficiente un grafo.

Page 31: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

•Recorrido en profundidad:

Generalización del recorrido en preorden de un árbol

Page 32: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

•Recorrido en amplitud:

Generalización del recorrido en niveles de un árbol

Page 33: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• En todos los algoritmos de recorrido de grafos supondremos que el grafo está implementado con listas de adyacencia

Page 34: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorrido en profundidad de un grafo

Dado un grafo G = (V,A) y un v´ertice v 2 V , la estrategia de recorrido en profundidad (Depth-First Search (DFS)), explora sistemáticamente las aristas de G de manera que primero se visitan los vértices adyacentes a los visitados más recientemente.

Page 35: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

De esta forma, se va profundizando en el grafo; es decir, alejándose progresivamente de v.

Page 36: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Este proceso continúa hasta que todos los vértices alcanzables desde el vértice de la llamada original han sido descubiertos.

Page 37: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Esta estrategia admite una implementación simple de forma recursiva y proporciona:

•Ordenamientos de los vértices.

•Clasificación de las aristas.

Page 38: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

• Algunas aplicaciones:

• Calcular un posible orden topológico y comprobar si el grafo es acíclico.

• Encontrar las componentes fuertemente conexas de un grafo.

Page 39: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Recorrido en amplitud de un grafo

Dado un grafo G = (V,A) y un vértice s V, ∊la estrategia de recorrido en amplitud o en anchura (Breadth-First Search (BFS)),explora sistemáticamente las aristas de G de manera que primero se visitan los vértices más cercanos a v.

Page 40: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Algunos algoritmos importantes de grafos tienen una estructura similar al BFS. Por ejemplo, el algoritmo de Dijkstra para encontrar los caminos más cortos desde un vértice dado.

Page 41: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

a distancia k + 1. El algoritmo BFS explora todos los vértices a distancia k del vértice origen s antes de empezar a explorar los vértices

Page 42: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

Al igual que DFS, se utiliza un vector de tipo “color” para marcar los vértices del grafo como no visitados (WHITE), visitándose (GRAY) o ya visitados (BLACK)

Page 43: Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.

También se genera un vector de predecesores para obtener un árbol.