You are on page 1of 4

Definicion: Un rbol B de orden m es un rbol m-camino de bsqueda que

est vaco o satisface las siguientes propiedades:


-

El nodo raz tiene al menos una clave (o dos hijos)


Todos los nodos interiores, excepto la raz tienen al menos m/2
(redondeo) hijos (m-1)/2 (parte entera) claves, y m hijos como
mximo (m-1 claves)
Todas las hojas estn en el mismo nivel

Referencia: http://rua.ua.es/dspace/bitstream/10045/4411/24/ped-06_07tema3_6.pdf
Definicion 2: Un rbol B es un rbol de bsqueda multicamino balanceado
que surgi por la necesidad de hacer una bsqueda rpida, de cualquier tipo
de contenido sin reorganizar el archivo y cumple con las siguientes reglas:
-

Cada nodo del rbol debe tener un mnimo de n valores en todo


momento a excepcin de la raz.
El nmero mximo de valores que un nodo puede tener es 2 n
El rbol siempre esta balanceado
Todos los nodos hojas deben aparecer juntas en el ltimo nivel

Referencia: http://es.slideshare.net/CarlosAndresGonzalez/exposicion-arbol-b

Los rboles B fueron propuestos en 1970 por Rudolf Bayer y Edward McCreight
y constituyen una categora muy importante de estructuras de datos, las
cuales representan bsicamente un mtodo para almacenar y recuperar
informacin de medios externos para operaciones de consulta y acceso
secuencial. Existe una gran variedad de rboles B: los arboles B, B+ y B*; pero
todas ellas estn basadas en la misma idea, la utilizacin de rboles de
bsqueda no binarios y con condicin de balanceo.
Estructura:
Cada elemento de un nodo interno acta como un valor separador, que lo
divide en subrboles. Por ejemplo, si un nodo interno tiene tres nodos hijo,
debe tener dos valores separadores o elementos a1 y a2. Todos los valores del
subrbol izquierdo deben ser menores a a1, todos los valores del subrbol del
centro deben estar entre a1 y a2, y todos los valores del subrbol derecho
deben ser mayores a a2. Los nodos internos de un rbol B, es decir los nodos
que no son hoja, usualmente se representan como un conjunto ordenado de
elementos y punteros a los hijos. Cada nodo interno contiene un mximo de U
hijos y, con excepcin del nodo raz, un mnimo de L hijos. Para todos los nodos
internos exceptuando la raz, el nmero de elementos es uno menos que el
nmero de punteros a nodos. El nmero de elementos se encuentra entre L-1 y

U-1. El nmero U debe ser 2L o 2L-1, es decir, cada nodo interno est por lo
menos a medio llenar. Esta relacin entre U y L implica que dos nodos que
estn a medio llenar pueden juntarse para formar un nodo legal, y un nodo
lleno puede dividirse en dos nodos legales (si es que hay lugar para subir un
elemento al nodo padre). Estas propiedades hacen posible que el rbol B se
ajuste para preservar sus propiedades ante la insercin y eliminacin de
elementos. Los nodos hoja tienen la misma restriccin sobre el nmero de
elementos, pero no tienen hijos, y por tanto carecen de punteros. El nodo raz
tiene lmite superior de nmero de hijos, pero no tiene lmite inferior. Por
ejemplo, si hubiera menos de L-1 elementos en todo el rbol, la raz sera el
nico nodo del rbol, y no tendra hijos. Un rbol B de altura n+1 puede
contener U veces por elementos ms que un rbol B de profundidad n, pero el
costo en la bsqueda, insercin y eliminacin crece con la altura del rbol.
Como todo rbol balanceado, el crecimiento del costo es ms lento que el del
nmero de elementos. Algunos rboles balanceados guardan valores slo en
los nodos hoja, y por lo tanto sus nodos internos y nodos hoja son de diferente
tipo. Los rboles B guardan valores en cada nodo, y pueden utilizar la misma
estructura para todos los nodos. Sin embargo, como los nodos hoja no tienen
hijos, una estructura especial para stos mejora el funcionamiento.
Bsqueda:
Se empieza en la raz, y se recorre el rbol hacia abajo, escogiendo el sub-nodo
de acuerdo a la posicin relativa del valor buscado respecto a los valores de
cada nodo.
1. Situarse en el nodo raz.
2. Comprobar si contiene la clave a buscar.
1. Encontrada fin de procedimiento.
2. No encontrada:
1. Si es hoja no existe la clave.
2. En otro caso el nodo actual es el hijo que corresponde:
1.

La clave a buscar k < k1: hijo izquierdo.

2.

La clave a buscar k > ki y k < ki+1 hijo isimo.

3.

Volver a paso 2(*).

Insercion:
Todas las inserciones se hacen en los nodos hoja.

1. Realizando una bsqueda en el rbol, se halla el nodo hoja en el cual


debera ubicarse el nuevo elemento.
2. Si el nodo hoja tiene menos elementos que el mximo nmero de
elementos legales, entonces hay lugar para uno ms. Inserte el nuevo
elemento en el nodo, respetando el orden de los elementos.
3. De otra forma, el nodo debe ser dividido en dos nodos. La divisin se
realiza de la siguiente manera:
1. Se escoge el valor medio entre los elementos del nodo y el nuevo
elemento.
2. Los valores menores que el valor medio se colocan en el nuevo nodo
izquierdo, y los valores mayores que el valor medio se colocan en el
nuevo nodo derecho; el valor medio acta como valor separador.
3. El valor separador se debe colocar en el nodo padre, lo que puede
provocar que el padre sea dividido en dos, y as sucesivamente.

Eliminacin:
Es localizar y eliminar el elemento, y luego corregir, o hacer una nica pasada
de arriba a abajo por el rbol, pero cada vez que se visita un nodo,
reestructurar el rbol para que cuando se encuentre el elemento a ser borrado,
pueda eliminarse sin necesidad de continuar reestructurando. Se pueden dar
dos problemas al eliminar elementos: primero, el elemento puede ser un
separador de un nodo interno. Segundo, puede suceder que al borrar el
elemento, el nmero de elementos del nodo quede debajo de la cota mnima.
Estos problemas se tratan a continuacin en orden.
-

Eliminacin en un nodo hoja


Busque el valor a eliminar.
Si el valor se encuentra en un nodo hoja, se elimina directamente la
clave, posiblemente dejndolo con muy pocos elementos; por lo que se
requerirn cambios adicionales en el rbol.

Eliminacin en un nodo interno


Cada elemento de un nodo interno acta como valor separador para dos
sub rboles, y cuando ese elemento es eliminado, pueden suceder dos
casos. En el primero, tanto el hijo izquierdo como el derecho tienen el
nmero mnimo de elementos, L-1. Pueden entonces fundirse en un
nico nodo con 2L-2 elementos. En el segundo caso, uno de los dos

nodos hijos tiene un nmero de elementos mayor que el mnimo.


Entonces se debe hallar un nuevo separador para estos dos sub rboles.
Note que el mayor elemento del rbol izquierdo es el mayor elemento
que es menor que el separador. De la misma forma, el menor elemento
del subrbol derecho es el menor elemento que es mayor que el
separador. Ambos elementos se encuentran en nodos hoja, y cualquiera
de los dos puede ser el nuevo separador.

Si el valor se encuentra en un nodo interno, escoja un nuevo


separador (puede ser el mayor elemento del subrbol izquierdo o el
menor elemento del subrbol derecho), elimnelo del nodo hoja en que
se encuentra, y reemplace el elemento a eliminar por el nuevo
separador.
Como se ha eliminado un elemento de un nodo hoja, se debe tratar
este caso de manera equivalente.

Bibliografia:
http://rua.ua.es/dspace/bitstream/10045/4411/24/ped-06_07tema3_6.pdf
http://es.slideshare.net/CarlosAndresGonzalez/exposicion-arbol-b
(El libro que me pasaste)
http://dis.um.es/~ginesgm/files/doc/aed/sec4.4.pdf
https://sites.google.com/site/clasearbolesb/arboles-b