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

Árboles

Embed Size (px)

DESCRIPTION

Á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. - PowerPoint PPT Presentation

Citation preview

Page 1: Árboles

Árboles

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

Page 2: Árboles

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

Bosques

Page 3: Árboles

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
Page 5: Árboles

Árbol enraizado

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

Page 6: Árboles

• 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

• 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

• Si dos nodos tienen el mismo padre son hermanos.

Page 9: Árboles
Page 10: Árboles

• 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

• 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

Á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

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

Page 14: Árboles

Árbol y árbol ordenado

Page 15: Árboles

• 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

–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

Un árbol binario es:

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

Page 18: Árboles

Recorridos de árboles binarios

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

Page 19: Árboles
Page 20: Árboles

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

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

Inorden

Page 23: Árboles

Recorridos de árboles binariosPostorden

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

Page 24: Árboles

Postorden

Page 25: Árboles

Recorrido de árboles binarios: Preorden

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

Page 26: Árboles

Recorrido en preorden

Page 27: Árboles

Ejemplo de árboles binarios: árbol de expresiones

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

Page 28: Árboles

• Raíz: operador principal

• Nodos internos: operadores de subexpresiones

• Hojas: operandos

• (niveles: precedencia relativa de evaluación)

Page 29: Árboles
Page 30: Árboles

Recorridos de grafos

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

Page 31: Árboles

•Recorrido en profundidad:

Generalización del recorrido en preorden de un árbol

Page 32: Árboles

•Recorrido en amplitud:

Generalización del recorrido en niveles de un árbol

Page 33: Árboles

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

Page 34: Árboles

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

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

Page 36: Árboles

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

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

• 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

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

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

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

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

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