Está en la página 1de 20

rboles B

Prof. Nibaldo Rodrguez


Definicin de rbol B
Un RBOL B de orden n es un rbol de
bsqueda que satisface :
Cada pgina contiene como mximo 2n
claves
Cada pgina contiene como mnimo n claves,
excepto la raz que puede tener slo una
Cada pgina o es una pgina hoja o tiene
m+1 descendientes, siendo m el nmero de
claves en sta.
Todas las pginas hoja estn al mismo nivel
Caractersticas del rbol B
Las claves dividen el espacio como en un AVL
Ejemplo: 2n=4=2*2
Numero Mximo Por pgina: 4 Claves y 5 Ramas
Numero Mnimo Por pgina: 2 Claves y 3 Ramas
Se rastrea el camino de bsqueda similar al ABB.

a b c d

>a >b >c >d


<a
<b <c
<d
Ejemplo: rbol B orden 2
Mximo nmero de claves: 2n=2*2
Mnimo n=2
Raz: una clave
Raz

39
39
m=2
20
20 30
30 45
45 62
62

44 13
13 15
15 16
16 22
22 25
25 29
29 33
33 34
34 41
41 42
42 47
47 52
52 63
63 73
73
2n=4
CARACTERSTICAS DE ARBOL B

Un rbol B de orden n con N elementos


requiere en el peor caso logn(N) acceso
de pgina
Las pginas estn como mnimo llenas
por la mitad
Con lo que el factor de uso de memoria
ser superior al 50%.
PRCESO: BUSCAR
La operacin de bsqueda es
anloga al proceso de bsqueda de
un rbol ABB
Salvo que los nodos ahora son
denominados pginas
En general, las pginas de un rbol B
se representan con m claves y m+1
descendiente (punteros)
INSERTAR
Buscar el lugar donde insertar la
clave, siguiendo el mismo criterio de
ABB
Si la pgina tiene m claves, con m<2n
Insertar de acuerdo al criterio de
ABB
En caso contrario
Re-balancear el rbol.
Rebalance
Dividir la pgina en dos pginas
Si la clave>=Cm/2, entonces subir un
nivel el manor de los mayores de la
subpgina y luego hacer:
Cm/2 izquierdo apunta subpgina
izquierda
Cm/2 derecho apunta subpgina
derecha.
Si la clave<Cm/2, entonces simtricas
REBALANCE
Observacin:
La clave C(m/2) puede subir
varios niveles
Siguiendo la ruta nodo Hoja-
Raiz
Ejemplo: Insertar Arbol B n=2
S={ 6,11,5,4,8,9,12,21}
6 Subir 6
Insertar: 6, 11, 5, 4
4 5 6 11 4 5 8 11

Insertar: 21
6 11 Subir 11
6

4 5 8 9 11 12 4 5 8 9 12 21

Insertar: 9, 12
ELIMINAR
A) Si la clave se encuentra en
una pgina hoja, entonces la
eliminacin es directa
B) En caso contrario:
Intercambiar el elemento con un
elemento de una pgina hoja.
B.1) Subrbol Izquierda o
B.2) Subrbol Derecha
PROCESO ELIMINAR
B.1) Tomar el elemento ms a
la derecha de la pgina hoja del
Subrbol Izquierdo
El Mayor de los menores
B.2) Tomar el elemento ms a
la Izquierda de la pgina hoja
del Subrbol Derecho.
El Menor de los mayores
ELIMINAR

Si tras el Intercambio de
eliminacin se produce que una
pgina tenga Menos de n-
elementos. Entonces, se
produce una subocupacin.
Por lo tanto, se debe realizar el
siguiente proceso:
SUBOCUPACIN
La nueva pgina ser:
La pgina actual
La pgina adyacente
El elemento entre ellas del Nivel
Superior.
Este proceso se realiza en direccin
al Nodo Raz.
Eliminacin de una clave en rbol B

45
45

Ejemplo: Delete 24
79
79 172
172
16
16 26
26

55 99 15
15 18
18 22
22 24
24 29
29 32
32 48
48 57
57 82
82 126
126 192
192 232
232
ELIMINAR CLAVE :22
45
45
15
15 26
26 79
79 172
172

55 99 18 22
18 22 29
29 32
32 48
48 57
57 82
82 126
126 192
192 232
232
Delete

15
15 26
26 26
26
Unir Pginas

55 99 18 29 32 55 99 15
15 18
18 29
29 32
32
18 29 32
SubOcupacin

45
45 Unir Pginas
26
26
SubOcupacin
79
79 1172
72 26
26 45
45 79
79 172
172
Cumple
Condicin
55 99 15
15 18
18 29
29 32
32 48
48 57
57 82
82 126
126 192
192 232
232
rbol B
Ejercicios
Considerar un rbol B de orden 2.
Insertar:
30,60,45,8,22,35,4,28,52,33,13,39,41,43,2
4,25,15

Eliminar:
30
SOLUCIN INSERTAR
Insert:
30,60,45,8,22,35,4,28,52,33,13,39,41,43,24,
25,15

30
SOLUCIN
13
13 24
24 39
39 45
45
FINAL
44 88 20
20 22
22 25
25 28
28 33
33 35
35 41
41 43
43 52
52 60
60
ELIMINAR 30 con m=4
30
30
13 39
39 45
45
13 24
24

44 88 20
20 22
22 25
25 28
28 33
33 35
35 41
41 43
43 52
52 60
60

13
13 24
24 33
33 45
Solucin:

44 88 20
20 22
22 25
25 28
28 35 39 41
35 39 41 43 52
52 60
60
RBOL B
URL:
http://slady.net/java/bt/

También podría gustarte