Está en la página 1de 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

25 65 92 99
12 18

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

25 65 92 99
12 18

Ejemplo...

De

qu orden es este rbol B?

10 20
5 8

25 65 92 99
12 18
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

25 65 92 99
12 18
Agregar el 4
10 20

Si hay espacio para el


elemento, ste se agrega en
el nodo.
Los elementos estn
acomodados de menor a
mayor.

4 5 8

25 65 92 99
12 18

Ejemplo...
10 20
5 8

25 65 92 99
12 18

Cuando el nuevo
elemento no cabe en
el nodo, se agrega
otro nodo y se
reparten los
elementos.

Agregar el 56
10 20 65
4 5 8
12 18

92 99
25 56

Ejemplo...
10 20 65
4 5 8
12 18

70 75 80 85
25 56
Agregar el 78

El rbol siempre se
resiste a crecer, ya que
trata de distribuir los
elementos en los
nodos ya existentes.

10 20 70
4 5 8
12 18

75 78 80 85
25 56 65

10206590

Ejemplo

9495
70758085

4 5 8

1218

1
4 5 8
12 18

25565760

Agregar el 66

10 20 65 90
75

65

9495

80 85

25 56 57 60 66 70

El rbol crece de abajo


hacia arriba. Cuando el
rbol aumenta de altura
slo se agrega una
nueva raz.

1020
4 5 8
1218
2556 5760

7590
9495
8085
6670

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

Cuando el nodo
tiene ms
elementos que el
mnimo, se da de
baja al elemento y
termina el proceso.

70 75 80 85
25 56

Eliminar el 8

10 20 65
4 5
12 18

70 75 80 85
25 56

Ejemplo...

10 20 65
4 5 8
12 18

70 75 80 85
25 56

Eliminar el 56

Cuando el nodo
tiene el mnimo
se toma un
elemento de los
hermanos.

10 20 70
4 5 8
12 18

75 80 85
25 65

Ejemplo...

10 20 65
4 5 8
12 18

70 75
25 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.

Eliminar el 56
10 20
4 5 8
12 18

25 65 70 75

65
1020

7590

4 5 8

9395

1218

Ejemplo...
Eliminar el 65
Utilizar el menor de los mayores

8085

2556 5760

6670

66
1020

4 5 8
1218
2556 5760

1020 6690

90
9395
7075 8085

4 5 8
1218

9395
7075 8085

2556 5760

65
102060

7590
9395

4 5 8
1218

61 62

25565758

1
4 5 8
1218
2556 5758
61 62

Eliminar el 65
Utilizar el menor de los mayores

8085
6670

66

1020 60

Ejemplo...

90

60
1020

9395

4 5 8

7075 8085

1218
2556 5758

6690
9395
7075 8085
61 62

También podría gustarte