Tema 5 TDA dinámicos no lineales árboles

6

Click here to load reader

description

Estructuras de datos y algoritmosTema 5 TDA dinámicos no lineales árboles

Transcript of Tema 5 TDA dinámicos no lineales árboles

Page 1: Tema 5 TDA dinámicos no lineales árboles

TEMA 5 TDA DINÁMICOS NO LINEALES ÁRBOLES

ÁRBOLESEs el TDA más adecuado para el tratamiento de grandes cantidades

de información. Se denomina grado del nodo al número de descendientes directos del

nodo.Se denomina nivel de un nodo al número de descendientes que debe

recorrerse desde la raíz hasta el nodo.

ÁRBOLES PERFECTAMENTE BALANCEADOSDecimos que un árbol es perfectamente balanceado si el número de

nodos de su subárbol izquierdo y su subárbol derecho difiere como máximo en 1.

Si no sabemos el nº de nodos lo que hace el algoritmo para ir inser-tando nodos es que cada nodo tiene un contador que se va incrementando según el número de hijos si este contador es impar manda hacia la izquierda y si es par hacia a la derecha.

Por ejemplo el 8, 10, 30, 49, 55, 12, 9, 2

Supóngase que se toma como criterio insertar primero por la izquier-da. Los primeros pasos son sencillos:

Se inserta el 20 como raíz, el 10 como hijo izquierdo y el 30 como hijo derecho.

Seguidamente, el 49 se inserta como hijo izquierdo del 10, el 55 de-berá insertarse necesariamente como hijo del 30, si se insertase como hijo del 10, el nodo con valor 10 tendrá el subárbol izquierdo con tres nodos y el derecho con uno, con lo que no cumpliría la definición de árbol perfecta-mente balanceado. Y será el hijo izquierdo por el criterio inicial de insertar primero por la izquierda.

1

8

1030

8

1030

49 55

Page 2: Tema 5 TDA dinámicos no lineales árboles

El 12 y el 9 se insertarán como hijo derecho del 10 y del 30 respecti-vamente.

Seguidamente el 2 será el hijo izquierdo del 49.

Aplicando los mismos razonamientos se insertan todos los valores que tengamos. La posibilidad de que con unos datos aleatorios podamos ha-cer un árbol perfectamente balanceado que sea de búsqueda es muy esca-sa, ya que son muy exigente por lo que se utiliza para ellos los árboles AVL.

ÁRBOLES BINARIOS ORDENADOS SEGÚN EL RECORRIDOUn árbol binario ordenado según el recorrido es aquel que para cada

nodo se visita el nodo, su subárbol izquierdo y su subárbol derecho en un or-den establecido.

Atendiendo a la naturaleza de los árboles binarios surgen tres formas de recorrer un árbol:

En Orden : Se recorre primero el hijo izquierdo, luego se procesa la raíz y luego el hijo derecho.

PreOrden : Primero la raíz luego los hijos. PostOrden : Se visitará primero el hijo izquierdo luego el derecho y

luego la raíz.

ÁRBOLES DE BUSQUEDA BINARIOSUna de las tareas más frecuentes es la de la clasificación de la infor-

mación. Por tanto es clara la necesidad de establecer algún criterio de or-ganización de los datos en el TDA. Cuando las condiciones mutuamente ex-cluyentes son 2, los árboles binarios se pueden organizar de tal manera que para cada nodo, todas las llaves de su subárbol izquierdo satisfagan una condición y las del derecho otra. Por ejemplo, en el caso de los enteros, u árbol binario es de búsqueda si para cada nodo los nodos de su hijo izquier-do son menores que él y los del derecho mayores.

Si buscamos el 25, por ejemplo, vemos que en cada comparación des-cartaremos la mitad de los elementos.

2

8

1030

49 12 55 9

8

1030

49 12 55 9

2

Page 3: Tema 5 TDA dinámicos no lineales árboles

ÁRBOLES BALANCEADOS (AVL)En este caso para cada nodo el número de niveles de su subárbol iz-

quierdo y derecho podrá diferir como máximo en uno. Cuando insertemos un nodo, si deja de cumplirse el que sea un árbol AVL, tendremos que reba-lancear.

Si ahora tuviéramos que insertar un elemento a la izquierda del todo (1) la diferencia sería de dos niveles por lo que ya no sería AVL, por lo tanto deberemos hacer rebalanceo. En este caso LL (left left ya que la inserción seria a la izquierda y a la izquierda). El rebalanceo propuesto sería:

Ahora sería un árbol AVL y además sería de búsqueda ya que: 4 es menor que 5 1 es menor que 4 3 es mayor que 2

3

20

1030

4 12 25 40

2

5

4 7

2

1

5

4 7

1 2

Page 4: Tema 5 TDA dinámicos no lineales árboles

7 es mayor que 5 y menor que 4El otro caso de rebalanceo que se presenta es el LR. El esquema ge-

neral es:

Se llama LR de Left Right por que el elemento entrará primero por la izquierda y luego por la derecha en el momento que entrara un nuevo ele-mento el árbol se descompensaría y habrá que balancearlo. El rebalanceo propuesto en este caso es:

Ahora sería un árbol AVL pero no sería de búsqueda.

CONCLUSIONESEn este capítulo se han presentado los TDA conocidos como árboles.

En primer lugar, se han definido de forma general, particularizando el estu-dio posteriormente a los árboles binarios. Con el fin de establecer un criterio de equilibrio que evite que el TDA árbol degenere en una lista enlazada, perdiendo con ello sus posibilidades como estructura no lineal, se han defi-nido los árboles perfectamente balanceados.

Atendiendo al estudio presentado sobre árboles binarios pueden esta-blecerse las siguientes consideraciones. En primer lugar no debe olvidarse que los árboles son estructuras de datos dinámicas. Por tanto, su utilización es adecuada en aquellas aplicaciones en las que la cantidad de elementos varía y puede ser elevada, al igual que en el caso de las listas enlazadas.

Entonces, ¿Qué aportan los árboles sobre las listas enlazadas? Re-cuérdese que el tiempo de acceso de las listas enlazadas es elevado. Cuan-do los datos se pueden organizar, es decir, si existe un criterio de clasifica-ción de los mismos, las estructuras de árboles presentan la posibilidad de tener en cuenta este criterio y realizar el tratamiento de la información de forma más eficaz que con lista enlazadas.

En el estudio de las estructuras de árboles deben tenerse en cuenta dos factores fundamentales:

4

5

2 7

1 4

3

4

2 5

1 3 7

Page 5: Tema 5 TDA dinámicos no lineales árboles

1. La longitud de trayectoria debe ser la menor posible, evitando que degenere en una lista enlazada perdiendo su eficacia.

2. El criterio de organización de los datos.Así, los árboles perfectamente balanceados son los que presentan el

mejor comportamiento desde el punto de vista de la longitud de trayectoria. Pero debe observarse que no son árboles ordenados ya que en su definición no se ha establecido ningún criterio de clasificación. Por eso su comporta-miento no es mejor que el de las listas enlazadas (piénsese, por ejemplo, en realizar una búsqueda en un árbol perfectamente balanceado).

Considerando el segundo factor, se definen los árboles ordenados, considerándose dos tipos básicos: árboles ordenados según el recorrido, y árboles de búsqueda. En los primeros la organización se da en función del orden en que se visitan los nodos y sus descendientes. Obsérvese que no se realiza en ellos ninguna consideración sobre la longitud de trayectoria. Sin embargo, este hecho no implica deterioro alguno en su eficacia, puesto que la secuenciación es el elemento a considerar en las aplicaciones de estos ár-boles (piénsese en el caso particular de los árboles de expresión).

Los árboles de búsqueda se definen para organizar los datos cuando en ellos se puede establecer un criterio de clasificación con condiciones mu-tuamente excluyentes, caso extraordinariamente común en la práctica. En este sentido satisfacen los requerimientos de organización, pero de nuevo no se realiza consideración alguna sobre la trayectoria, y para este tipo de criterio sí es importante puesto que puede degeneran en una lista enlazada y perder su eficacia. Si se establece sobre ellos el requerimiento de que sean perfectamente balanceados, el costo del mantenimiento del árbol para que tras cada inserción o eliminación siga siendo de búsqueda y perfecta-mente balanceado es muy elevado.

Aparece así un compromiso entre el costo de mantenimiento de la condición de equilibrio del árbol y la organización como árbol de búsqueda. Debido a este hecho se incorpora un criterio de equilibrio que garantice el comportamiento eficaz de la longitud de trayectoria en el peor de los casos, obteniéndose los árboles AVL. El análisis realizado muestra que el caso pro-medio, el árbol AVL es tan satisfactorio como el árbol perfectamente balan-ceado, siendo además mucho más fácil de mantener.

En conclusión, los árboles AVL se presentan como la mejor solución de compromiso entre equilibrio y árbol de búsqueda. Obsérvese que esta conclusión no quiere decir que los árboles AVL sean la mejor solución en to-dos los casos. Los rebalanceos necesarios en la inserción y eliminación de datos no se dan en un árbol de búsqueda. Por tanto, si predomina la inser-ción sobre la búsqueda, un árbol de búsqueda es mejor solución que un AVL. En una aplicación así puede no considerarse de criterio de equilibrio.

5