You are on page 1of 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 4 4 13 13 15 15 16 16 2n=4 20 20 30 30 33 33 34 34 41 41 42 42 45 45 62 62 63 63 73 73

22 25 29 29 22 25

47 47 52 52

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}
Insertar: 6, 11, 5, 4

6 4 5

Subir 6

4 5 8

11

11

6 4 5

Insertar: 21

11

Subir 11

8 9

11 12

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 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
16 16 26 26 79 79
172 172

5 5

9 9

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 5 5 9 9 18 22 18 22 Delete 29 29 32 32 48 48 57 57 79 79 172 172 82 82 126 126 192 192 232 232

15 15 26 26 5 5 9 9 45 45 26 26
SubOcupacin

Unir Pginas

26 26 29 29 32 32

18 18
SubOcupacin

29 29

32 32

5 5

9 9

15 15 18 18

Unir Pginas

79 79

1 172 72

26 26

45 79 45 79 29 29 32 32

172 172 48 48 57 57 82 82 126 126 192 192 232 232

Cumple Condicin 5 5 rbol B

9 9

15 18 15 18

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

SOLUCIN FINAL
4 4 8 8 20 20 22 22

30
13 13 24 24 25 25 28 28 33 33 35 35 39 39 45 45 41 41 43 43 52 52 60 60

ELIMINAR 30 con m=4


30 30 13 13 24 24 4 4 8 8 20 20 22 22 25 25 28 28 33 33 35 35 39 39
45 45

41 41

43 43

52 52

60 60

Solucin:

13 13

24 33 24 33

45

4 4

8 8

20 20

22 22

25 25 28 28

35 35 39 41 39 41

43 52 52 60 60

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

You might also like