Вы находитесь на странице: 1из 6

TEMA 5 TDA DINÁMICOS NO LINEALES ÁRBOLES

ÁRBOLES
Es 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 BALANCEADOS


Decimos 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 insertando
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 izquierda. Los
primeros pasos son sencillos:
Se inserta el 20 como raíz, el 10 como hijo izquierdo y el 30 como hijo
derecho.
8

30
10

Seguidamente, el 49 se inserta como hijo izquierdo del 10, el 55 deberá


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 perfectamente balanceado. Y será el
hijo izquierdo por el criterio inicial de insertar primero por la izquierda.
8

30
10

49 55

1
El 12 y el 9 se insertarán como hijo derecho del 10 y del 30
respectivamente.
8

30
10

49 12 55 9

Seguidamente el 2 será el hijo izquierdo del 49.


8

30
10

49 12 55 9

Aplicando los mismos razonamientos se insertan todos los valores que


tengamos. La posibilidad de que con unos datos aleatorios podamos hacer un árbol
perfectamente balanceado que sea de búsqueda es muy escasa, ya que son muy
exigente por lo que se utiliza para ellos los árboles AVL.

ÁRBOLES BINARIOS ORDENADOS SEGÚN EL RECORRIDO


Un á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 orden 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 BINARIOS


Una de las tareas más frecuentes es la de la clasificación de la información.
Por tanto es clara la necesidad de establecer algún criterio de organización de los
datos en el TDA. Cuando las condiciones mutuamente excluyentes 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 izquierdo son menores que él y los del derecho mayores.

2
Si buscamos el 25, por ejemplo, vemos que en cada comparación
descartaremos la mitad de los elementos.
20

30
10

4 12 25 40

ÁRBOLES BALANCEADOS (AVL)


En este caso para cada nodo el número de niveles de su subárbol izquierdo 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 rebalancear.

4 7

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:

4 7

1 2

3
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
• 7 es mayor que 5 y menor que 4
El otro caso de rebalanceo que se presenta es el LR. El esquema general es:

2 7

1 4

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 elemento el
árbol se descompensaría y habrá que balancearlo. El rebalanceo propuesto en este
caso es:

2 5

1 3 7

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

CONCLUSIONES
En este capítulo se han presentado los TDA conocidos como árboles. En
primer lugar, se han definido de forma general, particularizando el estudio
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 definido los árboles
perfectamente balanceados.
Atendiendo al estudio presentado sobre árboles binarios pueden
establecerse 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.

4
Entonces, ¿Qué aportan los árboles sobre las listas enlazadas? Recuérdese
que el tiempo de acceso de las listas enlazadas es elevado. Cuando los datos se
pueden organizar, es decir, si existe un criterio de clasificació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:
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 comportamiento 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 árboles (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 mutuamente
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 perfectamente 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 promedio, el árbol AVL es tan
satisfactorio como el árbol perfectamente balanceado, 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 todos los casos. Los
rebalanceos necesarios en la inserción y eliminación de datos no se dan en un árbol

5
de búsqueda. Por tanto, si predomina la inserció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.

Вам также может понравиться