21
Estructuras no lineales Autor: Angélica Nicolás González [email protected]

Estructuras No Lineales

Embed Size (px)

Citation preview

Page 1: Estructuras No Lineales

Estructuras no lineales

Autor:Angélica Nicolás González

[email protected]

Page 2: Estructuras No Lineales

4.1 Árboles.4.1.1 Definición.4.1.2 Representación en memoria de árboles.4.1.2.1 Árboles generales.4.1.2.2 Árboles binarios.4.1.3 Recorridos en un árbol binario.4.1.3.1 Preorden.4.1.3.2 Inorden.4.1.3.3 Postorden.4.1.4 Balanceo de árboles binarios.4.1.5 Clases para la implementación de árboles.4.2 Grafos.4.2.1 Definición.4.2.2 Tipos de grafos.4.2.3 Representación de grafos en memoria.4.2.4 Clases para la implementación de grafos.

Page 3: Estructuras No Lineales

Definición

Page 4: Estructuras No Lineales

Árbol

Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos.

También se suele dar una definición recursiva: un árbol es una estructura en compuesta por un dato y varios árboles.

Esto son definiciones simples. Pero las características que implican no lo son tanto.

Page 5: Estructuras No Lineales

* Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. En el ejemplo, 'L' y 'M' son hijos de 'G'.

* Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'.

Page 6: Estructuras No Lineales

En cuanto a la posición dentro del árbol:

Nodo raíz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al árbol. En el ejemplo, ese nodo es el 'A'.

Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'.

Nodo rama: aunque esta definición apenas la usaremos, estos son los nodos que no pertenecen a ninguna de las dos categorías anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.

Page 7: Estructuras No Lineales

Un árbol en el que en cada nodo o bien todos o ninguno de los hijos existe, se llama árbol completo.

Page 8: Estructuras No Lineales

características del árbol, en relación a su tamaño

Orden: es el número potencial de hijos que puede tener cada elemento de árbol. De este modo, diremos que un árbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres será de orden tres, etc.

Grado: el número de hijos que tiene el elemento con más hijos dentro del árbol. En el árbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con más de tres hijos.

Page 9: Estructuras No Lineales

Nivel: se define para cada elemento del árbol como la distancia a la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos uno. Así sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3.

Altura: la altura de un árbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un árbol puede considerarse a su vez como la raíz de un árbol, también podemos hablar de altura de ramas. El árbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc.

Page 10: Estructuras No Lineales

Árboles generales

Intuitivamente el concepto de árbol implica una estructura en la que los datos se organizan de modo que los elementos de información están relacionados entre si a través de ramas. El árbol genealógico es el ejemplo típico más representativo del concepto de árbol general.

Page 11: Estructuras No Lineales

Árboles binarios

Es un árbol en el que ningún nodo puede tener mas de dos subárboles. En un árbol binario, cada nodo puede tener cero, uno o dos hijos (subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

Page 12: Estructuras No Lineales

Operaciones en árboles binarios

Determinar su altura Determinar su número de elementos Hacer una copia Visualizar el árbol binario en pantalla o en

impresora Determinar si dos árboles binarios son idénticos Borrar (eliminar el árbol) Si es un árbol de expresión, evaluar la expresión Si es un árbol de expresión, obtener la forma de

paréntesis de la expresión.

Page 13: Estructuras No Lineales

Recorridos de un árbol binarioRecorrido. Requiere que cada nodo del árbol sea procesado (visitado) una vez y sólo en una secuencia predeterminada. Existen dos enfoques generales para la secuencia de recorrido, profundidad y anchura.

Page 14: Estructuras No Lineales

Recorrido en profundidad

El proceso exige un camino desde la raíz a través de un hijo, al descendiente más lejano del primer hijo antes de proseguir a un segundo hijo. En otras palabras, en el recorrido en profundidad, todos los descendientes de un hijo se procesan antes del siguiente hijo.

Page 15: Estructuras No Lineales

Recorrido en anchura

El proceso se realiza horizontalmente desde el raíz a todos sus hijos, a continuación a los hijos de sus hijos y así sucesivamente hasta que todos los nodos han sido procesados. En otras palabras, en el recorrido en anchura cada nivel se procesa totalmente antes que comience el siguiente nivel.

Page 16: Estructuras No Lineales

Preorden (NID)

Este recorrido conlleva los siguientes pasos:• Recorrer la raíz (N)• Recorrer el subárbol izquierdo (I)• Recorrer el subárbol derecho (D)

REGLA. La raíz se procesa antes que los subárboles izquierdo y derecho.

Page 17: Estructuras No Lineales

Inorden (IND)

Recorrer el subárbol izquierdo (I) Visitar el nodo raíz (N) Recorrer el subárbol derecho (D)

El significado in es que la raíz se procesa entre los subárboles.

Page 18: Estructuras No Lineales

Postorden (IDN)

Recorrer el subárbol izquierdo (I) Recorrer el subárbol derecho (D) Recorrer la raíz (N)

Se comienza situándose en la hoja mas izquierda

Page 19: Estructuras No Lineales

Balanceo de árboles binariosPara determinar si un árbol esta equilibrado, se calcula su factor de equilibrio. El factor de equilibrio de un árbol binario es la diferencia en altura entre los subárboles izquierdo y derecho. Si definimos la altura del subárbol izquierdo como H1 y la altura del subárbol derecho como HD, entonces el factor de equilibrio del árbol B se determina por la siguiente formula.

B= H1 - HD

Page 20: Estructuras No Lineales

grafos

*Tarea*

Page 21: Estructuras No Lineales

Fin de la presentación