Está en la página 1de 13

1

ARBOLES AVL
Un rbol AVL es un rbol binario de bsqueda
que cumple con la condicin de que la
diferencia entre las alturas de los subrboles
de cada uno de sus nodos es, como mucho 1.
La denominacin de rbol AVL viene dada por
los creadores de tal estructura (AdelsonVelskii y Landis).
Factor de Equilibrio
Cada nodo, adems de la informacin que se pretende almacenar, debe tener los dos
punteros a los rboles derecho e izquierdo, igual que los rboles binarios de
bsqueda (ABB), y adems el dato que controla el factor de equilibrio.
El factor de equilibrio es la diferencia entre las alturas del rbol derecho y el
izquierdo:
FE = altura subrbol derecho - altura subrbol izquierdo
Por definicin, para un rbol AVL, este valor debe ser -1, 0 1.
Si el factor de equilibrio de un nodo es:
0 -> el nodo est equilibrado y sus subrboles tienen exactamente la misma
altura.
1 -> el nodo est equilibrado y su subrbol derecho es un nivel ms alto.
-1 -> el nodo est equilibrado y su subrbol izquierdo es un nivel ms alto.
Si el factor de equilibrio
es necesario reequilibrar.

Rotaciones
El reequilibrado se produce de abajo hacia arriba sobre los nodos en los que se
produce el desequilibrio. Pueden darse dos casos: rotacin simple o rotacin doble; a
su vez ambos casos pueden ser hacia la derecha o hacia la izquierda.
Rotacin simple a la derecha
De un rbol de raz (r) y de hijos izquierdo (i) y derecho (d), lo que haremos ser
formar un nuevo rbol cuya raz sea la raz del hijo izquierdo, como hijo izquierdo
colocamos el hijo izquierdo de i (nuestro i) y como hijo derecho construimos un
nuevo rbol que tendr como raz, la raz del rbol (r), el hijo derecho de i (d) ser el
hijo izquierdo y el hijo derecho ser el hijo derecho del rbol (d).

Rotacin simple a la izquierda


De un rbol de raz (r) y de hijos izquierdo (i) y derecho (d), consiste en formar un
nuevo rbol cuya raz sea la raz del hijo derecho, como hijo derecho colocamos el
hijo derecho de d (nuestro d) y como hijo izquierdo construimos un nuevo rbol que
tendr como raz la raz del rbol (r), el hijo izquierdo de d ser el hijo derecho (i) y
el hijo izquierdo ser el hijo izquierdo del rbol (i).
Precondicin: Tiene que tener hijo derecho no vaco.
Si la insercin se produce en el hijo derecho del hijo izquierdo del nodo
desequilibrado (o viceversa) hay que realizar una doble rotacin.

Rotacin doble a la derecha


La Rotacin doble a la Derecha son dos rotaciones simples, primero rotacin simple
izquierda y luego rotacin simple derecha.

4
Rotacin doble a la izquierda
La Rotacin doble a la Izquierda son dos rotaciones simples, primero rotacin simple
derecha y luego rotacin simple izquierda.

ARBOLES B
Lo arboles surgen con un problema planteado que es la necesidad de acceder a bases
de datos y sistemas de archivos, donde se encuentran comnmente, con el problema
de que dispositivos son lentos y buscaban aprovechar la capacidad mxima de
almacenamiento y mantenerla organizada y que el acceso sea lo rpido y eficiente.
Los rboles B surgieron en 1972 creados por R. Bayer y E. McCreight siendo este
desarrollado para mantener estructuras de datos cuyo contenido se va modificando
con el tiempo de forma de poder encontrar en forma rpida y eficiente un elemento
en particular. (Datos, 2013), adems puede poseer ms de dos hijos.
La idea de los rboles-B es que los nodos internos deben tener un nmero variable
de nodos hijo dentro de un rango predefinido. Cuando se inserta o se elimina un dato
de la estructura, la cantidad de nodos hijo vara dentro de un nodo. Para que siga
mantenindose el nmero de nodos dentro del rango predefinido, los nodos internos
se juntan o se parten. (Google Site)
Ganimedes. Esquema de un nodo de un rbol B en orden m [Figura]. Recuperado de
http://www.ganimides.ucm.cl/haraya/doc/Arboles_B_2.pdf

Descripcin
Caractersticas
1. Suelen ser anchos y poco profundos.
2. Para facilitar la bsqueda sus registros deben estar
ordenados.
3. Todos los nodos terminales esta al mismo nivel.

5
4. Todos los nodos intermedios, excepto la raz, deben tener
entre m/2 y m ramas no nulas.
5. El mximo nmero de claves por nodo es m-1.
6. El mnimo nmero de claves por nodo es (m/2)-1.
7. Cada nodo puede tener ms de 2 hijos.
8. Mantiene los datos ordenados.

Restricciones
1. Los nodos hoja tienen la misma restriccin sobre el nmero de
elementos, pero no tienen hijos, y por tanto carecen de punteros.
(Google Site)
2. La raz est exenta de la restriccin del lmite inferior. (Google
Site)
Ventajas
1. Permite mantener el rbol balanceado a bajo costo.
2. Se utiliza para grandes volmenes de datos para archivos
secuenciales.

Desventajas

1. El mtodo de rbol B es lento para la creacin de ndices,


dado que es necesaria crear toda la estructura en
memoria para ello.
2. La desventaja es que cada registro o clave puede ser de
un tamao muy grande.

Insercin
Para realizar el proceso de insercin se debe tener en cuenta los
siguientes pasos:
1. Todas las inserciones se hacen en las hojas.
2. Si el nodo hoja tiene menos elementos que el nmero mximo se
inserta el nuevo elemento, respetando el orden.
3. En caso de que la hoja est llena, el nodo se divide en dos nodos y
los valores menores que el valor medio se colocan en el nuevo
nodo izquierdo, y los valores mayores se colocan en el nuevo nodo
derecho.
4. El valor separador se debe colocar en el nodo padre, lo que puede
provocar que el padre sea dividido dos, y as sucesivamente
Ejemplo

Recorrido
El recorrido es similar a la de los rboles binarios, se empieza en la raz, y se recorre
el rbol hacia abajo. O Si la clave buscada no est en la raz y se llega a una hoja la
clave no existe.

6
Ejemplo

Eliminacin
Para eliminar un dato nos vamos a basar en que el borrado es similar a la insercin
teniendo en cuenta que ahora, en lugar de divisiones, realizamos uniones. Existe un
problema aadido, las claves a borrar pueden aparecer en cualquier lugar del rbol y
por consiguiente no coincide con el caso de la insercin en la que siempre
comenzamos desde una hoja y propagamos hacia arriba. La solucin a esto es
inmediata pues cuando borramos una clave que est en un nodo interior, lo primero
que realizamos es un intercambio de este valor con el inmediato sucesor en el rbol,
es decir, el hijo ms a la izquierda del hijo derecho de esa clave.
Pasos para la eliminacin:
1. Localizar el nodo donde se encuentra la clave.
2. Si el nodo localizado no es una hoja, intercambiar el valor de la clave
localizada con el valor de la clave ms a la izquierda del hijo a la derecha. En
definitiva colocar la clave a borrar en una hoja.
3. Hacemos nodo actual igual a esa hoja.
4. Borrar la clave.
5. Si el nodo actual contiene al menos el mnimo de claves como para seguir
siendo un B-rbol, fin.
6. Si el nodo actual tiene un nmero menor que el mnimo:
1. Si un hermano tiene ms del mnimo de claves, redistribucin y fin.
2. Si ninguno de los hermanos tiene ms del mnimo, unin de dos nodos
junto con la clave del padre y vuelta al paso 4 para propagar el
borrado de dicha clave (ahora en el padre).

Ejemplo

ARBOLES B+
Los arboles B+ son una variante de los arboles B, se diferencian en que los arboles
B+ toda la informacin se encuentra almacenada en las hojas. En la raz y en las
pginas internas se encuentran almacenado ndices o claves para llegar a un dato

Descripcin
Caractersticas
1. La raz almacena como mnimo un dato y como mximo m-1
datos.
2. La pgina raz tiene como mnimo dos descendientes.
3. Las paginas intermedias tienen como mnimo (m-1)/2(Parte
entera) datos.
4. Las pginas intermedias tienen como mximo m-1 datos.
5. Todas las paginas hojas tienen la misma altura
6. La informacin se encuentra ordenada.
7. Toda la informacin se encuentra almacenada en las pginas
hoja, por lo que en las pginas internas se puede duplicar las
claves.
Restricciones
Las restricciones de ocupacin que determine el orden n del rbol slo
afectarn al conjunto ndice pero no a los bloques de registros, a los
cuales se les exigir una ocupacin mnima (y una mxima) pero no
estar relacionada con el orden del rbol.
Ventajas
1. Permite un recorrido secuencial ms rpido que el B.
2. Tiene como ventaja que al tener solo codificaciones de la
clave el registro del nodo ser relativamente pequeo.

Desventajas
1. La desventaja es que cada registro o clave puede ser de
un tamao muy grande.
2. La desventaja ser que la referencia del registro fsico, a
diferencia del rbol B comn, siempre se encontrara en
las hojas.

Insercin
Es similar a la del rbol B se diferencia en el momento que un nodo deja de cumplir
la condicin del nmero de datos almacenados. Para realizarla se debe subir una
copia de la clave mediana de los datos del nodo al nodo padre, solo se duplica la
informacin cuando la clave que sube es de una pgina hoja. (Google Sites)
Algoritmo:
1. Ubicar nodo raz.
2. Evaluar si es un nodo hoja
2.1. (SI) Evaluar si no sobrepasa los lmites de datos, se procede a insertar el
nuevo valor en lugar del correspondiente.
2.1.2. (NO) Se divide la pgina en dos, se sube una copia de la mediana a la
pgina padre, si el nodo padre se encuentra lleno se debe de partir igual y as el

8
mismo proceso hasta donde sea necesario, si este proceso llega hasta la raz la altura
del rbol aumenta en uno.
2.2. Si no es hoja, se compara el elemento a insertar con cada uno de los valores
almacenados.
Ejemplo
-Insertar las siguientes claves a un rbol de orden 5: 10-27-29-17-25-21-15-31-1351-20-24-48-19-60-35-66

Recorrido
Ejemplo

Eliminacin
La operacin de eliminacin en rboles-B+ es ms simple que en rboles-B. Esto
ocurre porque las claves a eliminar siempre se encuentran en las pginas hojas. En
general deben distinguirse los siguientes casos:
1. Si al eliminar una clave, la cantidad de llaves queda mayor o igual que [m/2]
entonces termina la operacin. Las claves de los nodos raz o internos no se
modifican por ms que sean una copia de la clave eliminada en las hojas.
2. Si al eliminar una clave, la cantidad de llaves queda menor que [m/2]
entonces debe realizarse una redistribucin de claves, tanto en el ndice como
en las pginas hojas.
Ejemplo

ARBOLES B*
Descripcin
El rbol B* o tambin conocido como B asterisco, B estrella o B Star es un
cambio del rbol B. Consiste en ampliar el nmero mnimo de valores de
clave, al momento de contener un nodo que no sea la raz, que en lugar de dar
un 50% de uso de espacio como el rbol B, se use las dos terceras partes del
mismo.
Caractersticas
Los Arboles B* tiene algo similar con los arboles B, teniendo como
diferencia la redistribucin en el alta as se logra detener hasta lo
ltimo la necesidad del Split (separacin / divisin) y da mayor
utilizacin del espacio en soporte. Tambin es seguro a la hora de
ejecutar un Split solo si los dos nodos no estn llenos, y toma dos
siblings (Hermanos) y los divide para 3 nodos 2/3 llenos.
Se puede caracterizar a un rbol B* por las siguientes propiedades:
1. Cantidad mxima de claves por nodo (k).
2. Cantidad mxima de descendientes por nodo (m)

9
3. Cantidad mnima de claves por nodo (excepto la raz que puede
tener menos).
3. Cantidad mnima de descendientes por nodo (excepto la raz y las
hojas). Fuente especificada no vlida.
Restricciones
Todo rbol B* tiene debe cumplir con los siguientes axiomas:
1. Todas las ramas tienen igual profundidad
2. Si un nodo tiene k claves, tiene siempre m + 1 descendientes.
3. Cada clave en un nodo est asociada siempre con dos referencias.
Una hacia otro nodo que contiene elementos con claves menores y la
otra a un nodo con elementos con claves mayores.
4. Existe una relacin entre las caractersticas de cantidad de claves y
descendientes mnimos y mximos por nodo (establecidas a
continuacin). Fuente especificada no vlida.
Ventajas
1. Su uso reside en menor incremento en la altura ya que tiene la
redistribucin en el alta.
2. Da un mayor aprovechamiento en el nodo (en soporte) y cambia
algunas reglas al decidir que se desea hacer un Split o una
concatenacin.
Desventajas
Insercin
Una insercin en un rbol B* se puede realizar de la misma manera que el
rbol B, solo cuando el nodo tenga espacio para insertarse. Pero si est lleno
el nodo hay una gran diferencia, al igual que los arboles B la insercin se la
va hacer en las hojas.
Cuando se inserta en la raz y est llena crece la altura esto se
procede as:
1. Insertamos la clave si hay espacio.
2. Crear una nueva pgina esta va a ser la nueva raz del rbol.
3. Dividmosla pgina creada en dos partes equitativas y subimos
la mediana de nuevo nodo.
4. Las nueva paginas creadas van hacer el lado izquierdo y
derecho respectivamente.
Ejemplo
Cuando se inserta en la raz y ya est lleno
a. Si tenemos un rbol del orden 7

b. Queremos insertar el 35, va a quedar as:


Cuando inserto una pgina hoja y est lleno:
a. Con el ejemplo anterior se le va a insertar una pgina llena y el
hermano tiene posiciones tiles.

10
b. Insertemos el 15 pero como no hay espacio, pero existe el espacio
en el lado derecho, entonces cedemos la llave a la derecha, el
numero 40 est en la derecha, se intercambian la con la llave que
est ahora de padre45 y se inserta como hermano. Entonces
queda as:
Cuando insertamos una pgina hoja llena y sus hermanos tambin
estn llenos:
a. Con el ejemplo anterior vamos a insertar el 32:
b. Para este caso juntamos las dos pginas (la insertada y a la
hermana) y se tiene en cuenta la clave a insertar y la padre, ya
que estn conteniendo las dos formando tres nodos donde se
sacaran dos nodos padres.
c. Por ultimo las cables que se sacaron fueron el 30 y el 48 y as
queda finalmente:
Recorrido
Ejemplo
Eliminacin
La eliminacin de un nodo es la misma que de los arboles B simplemente no
debe alterar el valor mnimo de claves que debera tener cada pgina.
Ejemplo
1. Cuando la clave que se va a eliminar sobrepasa el lmite inferior
por cada pgina y el hermano tiene como darle el espacio queda
as:
Al momento de eliminar el 35 comienza a rotar el 40 a la primera
pgina y el 45 queda como padre.
2. Cuando sobrepasa el limitar inferior de valores por pgina y no
hay ningn hermano para prestar, se comienza a buscar a un
hermano y hacen las rotaciones necesarias.
a. Se debe rota el 92 y se baja el 90 con esto sube el 50 y baja el
48. Y estara equilibrado.
3. Cuando el nodo se quiere eliminar, la existente clave queda por
debajo y tampoco tiene hermano para poder rotar hay que unir los
dos nodos hermano conjuntamente con el que se elimin para
tener dos nuevos nodo.
a. Se unen Ho, H1, H2 para tener solo dos nodos. Y queda de esta
forma:

11
b. Y para finalizar el 40 queda como padre de los lados
existentes, por lo que quedara as:

12

13

También podría gustarte