Está en la página 1de 8

UNIVERSIDAD POLITÉCNICA ESTATAL DEL CARCHI

FIACA

COMPUTACIÓN

Nombre: Byron Guerrero Fecha: 12/02/20


Curso: 3°A-T
Materia: Estructura de Datos
Tema: Arboles AVL y R-N

ÁRBOLES AVL

Concepto de árboles AVL

Es un árbol binario de búsqueda que tiene como condición que la diferencia entre las alturas

de los subárboles de cada uno de sus nodos es como mínimo 1. Es decir, en un árbol cada nodo

tendrá un nodo hijo en la izquierda y derecha del árbol. En un árbol el factor de equilibrio de

todo nodo es -1, 0, +1.

Operaciones Básicas:

 Inserción de un elemento.

 Borrar un elemento.

 Las operaciones adicionales de un árbol AVL son análogas a las de árboles binarios de

búsqueda, es decir el árbol se puede ordenar en preorden, inorden y postorden.

 Reequilibrado, consiste en recorrer los ascendientes del nodo que han sufrido una

modificación, recalculando sus factores de equilibrio y aplicando las rotaciones adecuadas

cuando es necesario.

Características de un Árbol AVL:

 La propiedad de balanceo garantiza que la altura del árbol sea de O (log n).

 En cada nodo del árbol se guarda información de la altura.

 La altura del árbol vacío es -1.


 Al realizar operaciones de inserción o eliminación se debe actualizar la información de altura

de los nodos y recuperar la propiedad de balanceo si fuera necesario, es decir, si hubiera sido

destruida.

Ventajas de un árbol AVL

Son útiles para conseguir un mejor acceso a los datos en las operaciones ya sea de búsqueda y

recuperación, inserción o eliminación.

Al estar los nodos equilibrados en altura en la que la rama izquierda no difiere en más de una

unidad de la altura de rama derecha y viceversa, esto permite que en la búsqueda se mantenga un

orden de complejidad.

Aplicación de cada operación

 Insertar: Acción a través de la cual se pueden insertar nuevos elementos en la estructura de

datos. Se presenta un diálogo para la introducción del nuevo valor

 Borrar: Si se desea borrar un nodo se debe seleccionar dicho nodo y pulsar el botón Borrar.

 Vaciar árbol: Esta acción elimina todos los elementos presentes en la lista.

 Camino recorrido: En este lugar se muestran los diferentes nodos por los que fue pasando

(con los que se comparó), el elemento insertado o eliminado.

Los árboles AVL son útiles para conseguir un mejor acceso a la información y poder realizar

operaciones tales como búsqueda, eliminación, inserción y recuperación.

Las operaciones de los árboles AVL son parecidas a la de otras estructuras, pero se agrega una

etapa posterior de reequilibrado.

Tras la inserción o borrado de un elemento, sólo los ascendentes del nodo pueden sufrir un cambio

en su factor de equilibrio, y en todo caso sólo en una unidad.

Una de las características principales de un árbol es que cada nodo debe tener un solo nodo hijo.
ÁRBOL R y N

Un árbol rojo-negro es un árbol binario de búsqueda en el que cada nodo tiene un atributo de

color cuyo valor es o bien rojo o negro, además de los requisitos impuestos a los arboles binarios

de búsqueda convencionales.

Se consideran a estos como una evolución de los arboles binarios de búsqueda, ya que ellos al

solo contar con el agrupamiento de nodos ya sea a la izquierda o a la derecha; considerando los

menores al lado izquierdo y los mayores al derecho poseen una desventaja cuando la mayoría de

los datos son mayores o menores que la raíz, por lo que en algunas ocasiones se genera un

desbalance en los ABB, a la solución de este problema se le ha llamado árbol Rojo-Negro el cual

posee un bit extra de almacenamiento por nodo el cual indica si el nodo es rojo o negro.

Un Árbol rojo-negro es un tipo de Árbol de búsqueda binario auto-balanceable, una estructura

de datos de tipo abstracto, utilizada en informática y en ciencias de la computación.

Cada nodo tiene un color como atributo extra, ya sea rojo o negro; el color de los nodos, asegura

que la trayectoria más larga de la raíz a una hoja no es más larga que el doble del largo de la más

corta. Esto significa que el árbol está fuertemente balanceado.

Todo Árbol Rojo-Negro debe satisfacer las siguientes propiedades:

1) La raíz es negra
2) Todas las hojas son negras

3) Los nodos rojos solo pueden tener hijos negros

4) Todos los caminos de un nodo a sus hojas contienen el mismo número de nodos negros.

Se cumplen las condiciones:

1) Un nodo rojo tiene dos hijos negros.

2) Todo camino de la raíz a cualquier hoja pasa por el mismo número de nodos negros.
La segunda condición se puede expresar de manera equivalente definiendo el concepto de altura

negra de un nodo (denotada por la letra H, para diferenciarla de la altura normal, h).

La altura negra de un nodo es igual a la altura del nodo cuando sólo se tienen en cuenta los

nodos negros del subárbol cuya raíz es el nodo.

De manera más formal, si n es un nodo se puede calcular su altura negra así:

H(n) = { máx (H(n.izdo), H(n.dcho)) + 1 si n es negro }

{ máx (H(n.izdo), H(n.dcho)) si n es rojo }

Es decir que para todo nodo interno (que no sea hoja), la altura negra de su hijo izquierdo es

igual a la altura negra de su hijo derecho.

Operaciones Básicas en un Árbol Rojo-Negro:

Inserción: La inserción de un nodo se realiza inicialmente igual que en un árbol binario de

búsqueda, al nuevo nodo se le da el color rojo, de ésta manera no se viola la segunda condición

(altura negra), aunque se puede violar la primera (el padre del nodo insertado puede ser rojo).

Si el padre del nodo insertado es negro, no se realiza ningún ajuste (el árbol es correcto) en caso

contrario, se entra en un bucle donde x representa el nodo que se está comprobando. x es un nodo

rojo y los casos se refieren a situaciones en que su padre existe y es también rojo: Cuando el padre

no exista, simplemente se cambia el color de x (que es la raíz) a negro y se termina el bucle, y si


el padre existe y es negro se termina directamente el bucle. Dependiendo del caso, se realizarán

una serie de operaciones y o bien continuará el bucle (x pasa a ser otro nodo) o bien se terminará.

En cada caso se supone que el nodo que se comprueba (x) es rojo, su padre (y) existe y es rojo,

y su abuelo (z) existe (no puede ser raíz un nodo rojo). El nodo hermano del padre se denomina

tío (t).

Inserción en un Árbol caso 1

Inserción en un Árbol caso 2


Borrado: La operación se lleva a cabo de la misma manera que en los árboles binarios de

búsqueda:

Se busca el nodo a borrar (como los nodos hojas son nodos nulos, en caso de existir el nodo a

borrar debe tener siempre dos hijos).

Si es un nodo con dos hijos no nulos, se busca el mayor nodo (el más a la derecha) de su

subárbol izquierdo (lo llamamos x), se intercambia sus datos con el nodo a borrar y se pasa a borrar

el nodo x, como es el nodo más a la derecha, su hijo derecho será nulo.

Como consecuencia de lo anterior, la operación de borrado siempre afecta a un nodo con un

hijo nulo (o los dos, en ese caso a uno cualquiera de ellos le consideramos como un nodo normal

y al otro como nulo).

Búsqueda: La búsqueda consiste acceder a la raíz del árbol y comparar su valor con el valor

buscado.

Si el elemento a localizar coincide con el de la raíz, la búsqueda ha concluido con éxito, si el

elemento es menor, se busca en el subárbol izquierdo; si es mayor, en el derecho.

Si se alcanza un nodo hoja y el elemento no ha sido encontrado se supone que no existe en el

árbol.
Cabe destacar que la búsqueda en este tipo de árboles es muy eficiente y representa una

función logarítmica. La búsqueda de un elemento en un ABB en general, y en un árbol rojo-

negro en particular, se puede realizar de dos formas: iterativa y recursiva.


BIBLIOGRAFÍA
Aguilar Joyanes Luis. (n.d.). Macgraw-Hill - Programación Orientada A Objetos (Luis Joyanes
Aguilar).pdf.

Árboles AVL | Algoritmos y Estructuras de Datos | Datos de computadora. (n.d.). Retrieved


February 12, 2020, from https://es.scribd.com/document/409279181/Arboles-AVL

Gurin, S (2004). Estructuras de datos. Árboles AVL . Fuente: http://es.tldp.org/Tutoriales/doc-


programacion-arboles-avl/avl-trees.pdf

Guardati, S. (2007). Estructura de datos orientada a objetos.

AHO, Alfred V.; HOPCROFT, John E.; ULLMAN, Jeffrey D. (1998). Estructuras de datos y
algoritmos. México: Addison Wesley.

(DOC) Árboles Rojo-Negro | Lisbeth Rmr’z - Academia.edu. (n.d.). Retrieved February 12, 2020,
from https://www.academia.edu/38504121/Árboles_Rojo-Negro

También podría gustarte