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

>a
<b

>b
<c

>c
<d

>d

Ejemplo: rbol B orden 2


Mximo nmero de claves: 2n=2*2
Mnimo n=2
Raz: una clave
Raz
39
39
m=2
44 13
13 15
15 16
16
2n=4

20
20

45
45

30
30

22
25 29
29
22 25

33
33 34
34

41
41 42
42

62
62

47
47 52
52

63
63 73
73

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
denominados pginas

ahora

son

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 HojaRaiz

Ejemplo: Insertar Arbol B n=2


S={ 6,11,5,4,8,9,12,21}

Subir 6

Insertar: 6, 11, 5, 4

4 5

11

11

8
Insertar: 21

6
4

8 9

Insertar: 9, 12

11 12

11

Subir 11

12 21

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 nelementos.
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

16
16 26
26

55

99

15
15

18
18 22
22

24
24

29
29 32
32

48
48

57
57

172
172

82
82

126
126

192
192 232
232

ELIMINAR CLAVE :22


45
45
79
79

15
15 26
26
55

18
22
18 22
Delete

99

29
29

32
32

48
48

55

99

29
29

18
18

82
82

57
57

15
15 26
26

172
172
126
126

192
192 232
232

26
26

Unir Pginas

55

32
32

99

15
15 18
18

29
29

32
32

SubOcupacin

45
45

Unir Pginas

26
26
SubOcupacin

Cumple
Condicin
55
rbol B

79
79

99

1172
72

15
18
15 18

26
26

45
79
45 79
29
29

32
32

172
172
48
48

57
57

82
82

126
126

192
192 232
232

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
FINAL
44

88

20
20

39
39

13
13 24
24
22
22

25
25

28
28

33
33

35
35

45
45
41
41

43
43

52
52

60
60

ELIMINAR 30 con m=4


30
30
39
39

13
13 24
24
44

88

20
20

13
13

Solucin:

44

88

20
20

22
22

22
22

25
25

24
33
24 33

25
25 28
28

28
28

33
33

35
35

45
45

41
41

43
43

52
52

45

35
35 39
41
39 41

43 52
52 60
60

60
60

RBOL B
URL:
http://slady.net/java/bt/

También podría gustarte