You are on page 1of 18

rbol B

Estructura de Datos en
memoria secundaria
Introduccin
Para almacenar muchos datos disco, es
necesario una estructura de datos eficiente.
Los accesos al disco son costosos en tiempo
por lo que se debe evitar realizar muchos
accesos a los datos.
AVL es la mejor estructura para memoria
principal, pero es ineficiente si se utiliza para
almacenamiento secundario. Esto se debe a
la cantidad de accesos necesarios para
efectuar las rotaciones. Otro problema es
que se requieren tantos accesos como
niveles se recorran en el rbol para efectuar
la bsqueda.
rboles B
Bayer y McCreight propusieron en 1970 esta
estructura.
Manejan rboles de bsqueda multicamino,
cuyos nodos guardan ms de un elemento.
Son rboles 100% balanceados en su estructura,
lo cual repercute en bsquedas eficientes y en
accesos mnimos a disco.
10 20
5 8
12 18
25 65 92 99
Caractersticas del rbol B
Un rbol B de orden n es aquel que:
Todas las hojas del rbol estn en el nivel
inferior.

Cada nodo contiene entre n y 2n elementos,
excepto el nodo raz, que puede tener entre 1
y 2n elementos.
Si un nodo tiene m elementos, el nodo
siempre contendr m + 1 hijos si no es un
nodo hoja.
Ejemplo....
Para un rbol B de orden 3:
Cuntos elementos mximo puede guardar
cada nodo del rbol?
6
Cuntos elementos mnimo puede guardar
cada nodo del rbol?
1 si el la raz, 3 cualquier otro nodo.
Cuntos hijos mximo puede tener un nodo?
7
Cuntos hijos mnimo puede tener un nodo?
0 si es hoja, 2 si es raz, 4 cualquier otro nodo.
Ms caractersticas del rbol B
Un rbol B de orden n es aqul en que:
Los elementos de un nodo estn ordenados
linealmente.
Los elementos estn organizados de tal forma
que se cumple la regla de la bsqueda: a la
izquierda menores, a la derecha mayores.
10 20
5 8
12 18
25 65 92 99
Ejemplo...
De qu orden es este rbol B?
10 20
5 8
12 18
25 65 92 99
Este rbol es de
orden 2 ya que
puede almacenar
hasta 4 elementos en
cada nodo.
Proceso de Insercin
Buscar el nodo hoja en donde se debera agregar el
elemento.
Si hay espacio disponible en el nodo, agregar el
elemento y terminar.
Si el nodo hoja NO tiene capacidad de almacenar
el elemento, se deber crear un nuevo nodo al
mismo nivel de la hoja y distribuir a los 2n+1
elementos de la siguiente forma:
El nuevo nodo recibe a los n elementos ms grandes.
El nodo existente se queda con los n elementos ms
pequeos.
El elemento medio se insertar en el nodo padre siguiendo
la misma lgica de insercin. En caso de no haber nodo
padre, se crear un nuevo nodo que pasar a ser la
nueva raz.
Ejemplo....
10 20
5 8
12 18
25 65 92 99
Agregar el 4
10 20
4 5 8
12 18
25 65 92 99
Si hay espacio para el elemento,
ste se agrega en el nodo.
Los elementos estn acomodados
de menor a mayor.
Ejemplo...
10 20
5 8
12 18
25 65 92 99
Agregar el 56
10 20 65
4 5 8
12 18
25 56
92 99
Cuando el nuevo
elemento no cabe en el
nodo, se agrega otro
nodo y se reparten los
elementos.
Ejemplo...
10 20 65
4 5 8
12 18
25 56
70 75 80 85
Agregar el 78
10 20 70
4 5 8
12 18
25 56 65
75 78 80 85
El rbol siempre se
resiste a crecer, ya que
trata de distribuir los
elementos en los
nodos ya existentes.
Ejemplo
10 20 65 90
4 5 8
12 18
25 56 57 60
70 75 80 85
Agregar el 66
10 20 65 90
4 5 8
12 18
25 56 57 60
66 70
80 85
75
10 20


4 5 8
12 18
25 56 57 60 66 70
80 85
65
75 90
1
2
El rbol crece de abajo
hacia arriba. Cuando el
rbol aumenta de altura
slo se agrega una
nueva raz.
94 95
94 95
94 95
Proceso de Eliminacin
Buscar el elemento a borrar.
Si el elemento a borrar est en una nodo
hoja, se borra y termina el proceso.
Si el elemento a borrar no se encuentra
en una hoja, al igual que en un ABB, se
buscar al sustituto ms apropiado. El
sustituto ser:
El ltimo elemento de la hoja ms derecha del
subrbol izquierdo del nodo actual (el mayor
de los menores).
El primer elemento de la hoja ms izquierda del
subrbol derecho del nodo actual (el menor de
los mayores).
Ejemplo...
10 20 65
4 5 8
12 18
25 56
70 75 80 85
Eliminar el 8
10 20 65
4 5
12 18
25 56
70 75 80 85
Cuando el nodo tiene
ms elementos que el
mnimo, se da de baja
al elemento y termina
el proceso.
Ejemplo...
10 20 65
4 5 8
12 18
25 56
70 75 80 85
10 20 70
4 5 8
12 18
25 65
75 80 85
Eliminar el 56
Cuando el nodo
tiene el mnimo se
toma un elemento
de los hermanos.
Ejemplo...
10 20 65
4 5 8
12 18
25 56
70 75
Eliminar el 56
Cuando el nodo tiene el
mnimo y los hermanos
tambin, se une el nodo
con uno de sus hermanos
y le libera el nodo
sobrante.
10 20
4 5 8
12 18
25 65 70 75
Ejemplo... 10 20


4 5 8
12 18
25 56 57 60
66 70
80 85
65
75 90
Eliminar el 65
Utilizar el menor de los mayores
10 20


4 5 8
12 18
25 56 57 60
70 75 80 85
66
90
10 20 66 90
4 5 8
12 18
25 56 57 60
70 75 80 85
1
2
93 95
93 95
93 95
Ejemplo...
10 20 60


4 5 8
12 18
25 56 57 58
66 70
80 85
65
75 90
Eliminar el 65
Utilizar el menor de los mayores
10 20 60


4 5 8
12 18
25 56 57 58
70 75 80 85
66
90
1
2
10 20


4 5 8
12 18
25 56 57 58
70 75 80 85
60
66 90
93 95
61 62
61 62
93 95
61 62
93 95

You might also like