You are on page 1of 21

Características del Árbol B

 Un Árbol B de orden n es aquel que:


 Todas las hojas del árbol están en el nivel inferior.

 Cada nodo contiene entre n y 2n elementos, excepto el nodo


raíz, que puede tener entre 1 y 2n elementos.

 Siun 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:


 Cuántos elementos máximo puede guardar cada nodo del
árbol?
6
 ¿Cuántos elementos mínimo puede guardar cada nodo del
árbol?
1 si el la raíz, 3 cualquier otro nodo.
 ¿Cuántos hijos máximo puede tener un nodo?
7
 ¿Cuántos hijos mínimo puede tener un nodo?
0 si es hoja, 2 si es raíz, 4 cualquier otro nodo.
Más características del Árbol B

 Un árbol B de orden n es aquél en que:


 Los elementos de un nodo están ordenados
linealmente.
 Los elementos están organizados de tal forma que
se cumple la regla de la búsqueda: 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 Inserción

 Buscar el nodo hoja en donde se debería agregar el


elemento.
 Si hay espacio disponible en el nodo, agregar el elemento
y terminar.
Proceso de Inserción

 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 más grandes.
 Elnodo existente se queda con los ‘n’ elementos más
pequeños.
 El elemento medio se insertará en el nodo padre
siguiendo la misma lógica de inserción. En caso de no
haber nodo padre, se creará un nuevo nodo que pasará a
ser la nueva raíz.
Ejemplo

10 20

5 8 25 65 92 99

12 18
Agregar el 4
Si hay espacio para el 10 20
elemento, éste se
agrega en el nodo.
Los elementos están 4 5 8
acomodados de menor
25 65 92 99
a mayor.
12 18
Ejemplo

10 20

5 8 25 65 92 99

12 18
Agregar el 56

Cuando el nuevo 10 20 65
elemento no cabe en el
nodo, se agrega otro
nodo y se reparten los 4 5 8 92 99
elementos.

12 18 25 56
Ejemplo

10 20 65

4 5 8 70 75 80 85

12 18 25 56
Agregar el 78

El árbol siempre se 10 20 70
resiste a crecer, ya
que trata de distribuir
los elementos en los 4 5 8 75 78 80 85
nodos ya existentes.

12 18 25 56 65
Ejemplo
10206590
9495 El árbol crece de abajo
4 5 8 hacia arriba. Cuando el
70758085 árbol aumenta de altura
1218 sólo se agrega una
25565760 Agregar el 66 nueva raíz.

1 10 20 65 90
2
65
4 5 8 75 9495
1020 7590
12 18 80 85
4 5 8 9495
25 56 57 60 66 70
1218 8085
25565760 6670
Proceso de Eliminación

La eliminación de un elemento es directa si no se requiere corrección


para garantizar sus propiedades. Hay dos estrategias populares para
eliminar un nodo de un árbol B:
1. Localizar y eliminar el elemento, y luego corregir.
2. Hacer una única pasada de arriba a abajo por el árbol, pero cada
vez que se visita un nodo, reestructurar el árbol para que cuando se
encuentre el elemento a ser borrado, pueda eliminarse sin
necesidad de continuar reestructurando.
Proceso de Eliminación

Con la primera estrategia, localizar y eliminar el elemento, se pueden


dar dos problemas:

1. El elemento puede ser un separador de un nodo interno.


2. Puede suceder que al borrar el elemento, el número de elementos
del nodo quede debajo de la cota mínima.
Proceso de Eliminación

1. Tanto el hijo izquierdo como el derecho tienen el


número mínimo de elementos. Entonces fundirse en un
único elemento.
Proceso de Eliminación

2. Uno de los dos nodos hijos tienen un número de


elementos mayor que el mínimo. Entonces se debe
hallar un nuevo separador. Note que el mayor elemento
del subárbol izquierdo es menor que el separador. De la
misma forma, el menor elemento del subárbol derecho
es mayor que el separador. Ambos elementos se
encuentran en nodos hojas, y cualquiera de los dos
puede ser el nuevo separador.
Proceso de Eliminación

3. Si el valor se encuentra en un nodo interno, escoja un


nuevo separador (puede ser el mayor elemento del
subárbol izquierdo o el menor elemento del subárbol
derecho), elimínelo del nodo hoja en que se encuentra,
y reemplace el elemento a eliminar por el nuevo
separador.
Ejemplo

10 20 65

4 5 8 70 75 80 85

12 18 25 56 Eliminar el 8

Cuando el nodo tiene


más elementos que el
mínimo, se da de baja 10 20 65
al elemento y termina
el proceso.
4 5 70 75 80 85

12 18 25 56
Ejemplo

10 20 65

4 5 8 70 75 80 85

12 18 25 56 Eliminar el 56

Cuando el nodo
tiene el mínimo se
toma un elemento 10 20 70
de los hermanos.

4 5 8 75 80 85

12 18 25 65
Ejemplo

10 20 65

4 5 8 70 75

12 18 25 56 Eliminar el 56
Cuando el nodo tiene el
mínimo y los hermanos
también, se une el nodo 10 20
con uno de sus hermanos y
le libera el nodo sobrante.
4 5 8

12 18 25 65 70 75
Ejemplo
65
1020 7590
4 5 8 Eliminar el 65
9395 Utilizar el menor de los mayores
1218 8085
25565760 6670

1 66 2
1020 90 1020 6690

4 5 8 4 5 8
9395 9395
1218 1218
7075 8085 7075 8085
25565760 25565760
Ejemplo
65
102060 7590
9395 Eliminar el 65
4 5 8
1218 61 62 Utilizar el menor de los mayores
8085
25565758 6670

1 66
2 60
102060 90
1020 6690
4 5 8
9395 4 5 8
1218 9395
70758085 1218
25565758 7075 8085
25565758
61 62 61 62

You might also like