You are on page 1of 28

Arboles B+ y Arboles B*

ARBOLES
+
Los arboles B se han convertido en la tcnica ms
utilizada para la organizacin de archivos indicados.
La principal caracterstica de estos rboles es que
todas las claves se encuentran en las hojas y por lo
tanto cualquier camino desde la raz hasta alguna de las
claves tiene la misma longitud.
DEFINICIN
CARACTERSTICAS
Cada pgina, excepto la raz, contiene entre d y 2d
elementos.
Cada pgina, excepto la raz, tiene entre d+1 y 2d +1
descendientes. Se utiliza m para expresar el nmero de
elementos por pgina.
La pgina raz tiene al menos dos descendientes
Las pginas hojas estn al mismo nivel.
Todas las claves se encuentran en las pginas hojas
Las claves de las paginas raz e interiores se utilizan
como ndices
El procesos de Bsqueda sirve para saber si existe algn
valor o clave en el rbol; en el caso de los Arboles-B+
es una generalizacin del proceso de bsqueda de
arboles binarios.
BSQUEDA EN
ARBOLES-B+
ALGORITMO DE
BSQUEDA
INSERCIN EN ARBOLES B
La dificultad se presenta cuando desea insertarse una
clave en una pgina que se encuentra llena (m=2d). En
este caso la pgina afectada se divide en 2.
Distribuyndose las m+1 claves de la siguiente forma:
Las d primeras claves en la pgina de la izquierda y las
d+1 restantes claves en la pgina de la derecha.
Una copia de la clave del medio sube a la pgina
antecesora.
Puede suceder que la pgina antecesora se desborde
nuevamente, entonces tendr que repetirse el proceso
anterior .
Algoritmo de Insercin
Insercion(PAG, X, i, m)
Si (m < 2d) entonces
CL
m
= X
si no
Si (m = 2d)
La pgina se divide en 2 y se distribuyen las m+1 claves
equitativamente, las d primeras claves en la pgina de la
izquierda y las d+1 restantes claves en la pgina de la derecha y
una copia de la clave del medio sube a la pgina antecesora.
fin.
fin.
CONSTRUIR EL ARBOL B DADA LAS
SIGUIENTES CLAVES:
7 - 25 - 27 - 15 - 23 - 19 - 14 - 29 - 10 - 50 - 18 - 22 - 46 - 17 - 70 - 33
- 58
a) INSERCIN CLAVES: 7 - 25 - 27 - 15
7 15 25 27
b) INSERCIN CLAVES: 23
23
7 15 23 25 27
c) INSERCIN CLAVES: 19 - 14 - 29
23
15 19 14 7 23 25 27 29
CONSTRUIR EL RBOL B DADA LAS
SIGUIENTES CLAVES:
d) INSERCIN CLAVES: 10
23 14
14 15 10 7 19 23 25 27 29
e) INSERCIN CLAVES: 50
23 14 27
14 15 10 7 19 23 25 27 29 50
CONSTRUIR EL ARBOL B DADA LAS
SIGUIENTES CLAVES:
g) INSERCIN CLAVES: 22 - 46 - 17
18 14 23 27
14 15 10 7 18 19 22 17 23 25 27 29 46 50
f) INSERCIN CLAVES: 18
23 14 27
14 15 10 7 18 19 23 25 27 29 50
CONSTRUIR EL ARBOL B DADA LAS
SIGUIENTES CLAVES:
i) INSERCIN CLAVES: 33 -58
18 14 27 46
23
14 1
5
1
0
7 1
8
19 2
2
1
7
23 25 27 29 46 50 58 33 70
h) INSERCIN CLAVES: 70
18 14 27 46
23
14 15 10 7 18 19 22 17 23 25 27 29 46 50 70
BORRADO EN ARBOLES
B
Si al eliminar una clave, m queda mayor o igual a d
entonces termina la operacin de borrado. Las claves
de las pginas raz o internas no se modifican por ms
que sean una copia de la clave eliminada en las hojas.
1)
ALGORITMO DEL BORRADO DE UN
RBOL
Eliminar (PAG, X, i, m)
Si (m > d) entonces
Si (CL
i
= X) entonces
Borrar CL
i
Si no
Se debe realizar una redistribucin de las claves, tanto en el ndice como en
las pginas hojas. Cuando se cambia la estructura del rbol, se quitan
aquellas claves que quedaron en los nodos intermedios luego de haber
borrado su correspondiente informacin en los nodos hoja.
Puede suceder que al eliminar una clave y al realizar la redistribucin de la misma
la altura del rbol disminuya en una unidad.
SOLUCIN:
14 18 23 50
7 10 15 17 18 19 22 23 27 29 33 50 58 70
1)
EJEMPLO
ELIMINAR EN EL RBOL-B+ LAS CLAVES:
46,27,25,14
23
14 18 27 46
7 10 14 15 17 18 19 22 23 25 27 29 33 46 50 58 70
ARBOLES

DEFINICIN RBOL-B*
Un rbol-B* es una estructura de datos de rbol, es una
variante de rbol-B, que requiere que los nodos no raz
que estn por lo menos a 2/3 de ocupacin en lugar de
1/2. Para mantener esto los nodos, en lugar de generar
inmediatamente un nodo cuando se llenan, comparten sus
claves con el nodo adyacente.
Cuando ambos estn llenos, entonces los dos nodos se
transforman en tres. Tambin requiere que la clave ms a
la izquierda no sea usada nunca.
No se debe confundir un rbol-B* con un rbol-B+, en el
que los nodos hoja del rbol estn conectados entre s a
travs de una lista enlazada, aumentando el coste de
insercin para mejorar la eficiencia en la bsqueda.
OPERACIONES BSICAS EN RBOLES
B*
BSQUEDA
*La bsqueda en el rbol B* se realiza de misma manera que en el B.
Insercin
*La insercin en un rbol B* se realiza del mismo modo que en el
rbol B, siempre y cuando exista capacidad en el nodo para colocar
la nueva llave. La diferencia est en el momento en que se va a
insertar un elemento en un nodo que ya est lleno.
La manera de proceder en caso de insertar un elemento en un
nodo lleno, vara si dicho nodo es la raz o si es un nodo hoja. Note
que cuando se habla de una insercin en la raz es o porque la raz
es el nico nodo del rbol y el nuevo elemento debe ser insertado
en ella o porque la insercin en una hoja, provoc la promocin de
una llave para ser insertada en el padre y esta promocin se
propag hasta la raz.
Veamos unos ejemplos de insercin en un rbol de orden 2:
EJEMPLO1 Insertemos un 40 en el siguiente rbol:
El nodo de un rbol B* de orden 2 tiene a lo sumo 4 llaves, pero
en este caso, que se trata de una insercin en la raz del rbol,
la insercin se realiza en el propio nodo, porque la raz de orden
2 admite hasta 4 llaves. Luego, el rbol que se obtiene es:
Si al rbol anterior le insertamos un 70, estaramos nuevamente
en un caso fcil y obtendramos el rbol:
Ahora insertemos un 35. Ya el nodo se encuentra lleno, por lo que
tenemos que dividirlo en dos e insertar la llave del medio en un
nuevo nodo raz que debe ser creado, obteniendo al rbol:
EJEMPLO 2 Insertemos el 25 en el siguiente
rbol:
Hay capacidad en el nodo, por tanto, solo hay que buscar el lugar
que le corresponde e insertar. Se obtiene el rbol:
Ahora insertemos un 15 en el rbol anterior
No hay capacidad en el nodo en que se inserta. Existe capacidad en
el hermano derecho, por lo que puede cedrsele la llave ms a la
derecha, el 30 en este caso; esta debe intercambiarse con la llave
que est en el padre, el 40 y este debe ser insertado en el
hermano. El rbol resultante se muestra en la figura siguiente:
EJEMPLO 3 Veamos qu ocurre al insertar una llave en un
nodo sin capacidad, que tiene un hermano en el que no hay
capacidad. Insertemos el 32 en el rbol:
En este caso, debemos combinar el nodo en que se inserta, con el
hermano, para obtener tres nodos. En esta combinacin tambin
se tiene en cuenta la llave que se encuentra en el padre, entre
ambos nodos, o sea, el 40.
La figura anterior muestra la combinacin. Estn representados
todas las llaves a combinar, que son las llaves de ambos nodos,
ms la llave a insertar y la que estaba en el padre. Estas dos
ltimas se encuentran encerradas en un crculo. Se muestra
adems las llaves que quedarn en el padre y la divisin
equitativa en cuatro nodos. El rbol resultante es:
ELIMINACIN
La eliminacin se realiza del mismo modo que en el rbol B,
siempre y cuando no provoque que un nodo quede con menos
llaves que las que debe tener, porque en este caso, el
procedimiento a seguir en el rbol B* difiere de la vista
anteriormente para el rbol B.
La eliminacin en rboles B* podr entenderse mejor en los
ejemplos que siguen, para un rbol de orden 7.
EJEMPLO 1 En el rbol siguiente, eliminar la llave 35
En este caso, el nodo en que se elimina queda con una cantidad
de llaves menor que la permitida. Su hermano derecho puede
cederle una llave, por lo que se procede a extraer la llave ms a la
izquierda de este, el 45 en este caso, intercambiarla con la llave
del padre, el 40, e insertar el 40 en el nodo del que se elimin,
resultando el rbol:
EJEMPLO 2 Eliminemos el 40 del rbol siguiente:
En este caso, al eliminar el 40, el nodo del que se elimina queda
con una cantidad de llaves por debajo del lmite. Sus hermanos
inmediatos no pueden cederle una llave, por lo que se analiza un
hermano ms all y se comprueba que s puede ceder una. En
este caso, debe hacer dos rotaciones, para suplir la falta de llave.
La figura muestra dicha operacin:
El rbol resultante sera:
EJEMPLO 3 Eliminemos el 20 del rbol:
Si analizamos a su hermano (H1) y al hermano de su hermano
(H2), vemos que no es posible resolver la falta de llave mediante
rotaciones, por lo que debe procederse a combinar los tres
nodos (H0, H1 y H2) para formar dos.
En la figura anterior se muestran las llaves de los tres nodos a
combinar. Se encuentran entre crculos las llaves del nodo padre,
que se encuentran entre los tres nodos, que tambin deben
tenerse en cuenta para combinar.
Se encuentra sealado con una flecha la llave que debe quedar en
el nodo padre entre los dos nodos y el rbol resultante es:
EJEMPLO 4 Procedamos a eliminar el 20 en el rbol siguiente:
En este caso, la cantidad de llaves pasa por debajo del lmite, el
hermano no tiene para ceder una llave, solo existe un hermano
para el nodo del cual se elimin y por tanto, todos los nodos
deben combinarse en uno que quedar como raz, obtenindose
el rbol:

You might also like