Está en la página 1de 58

ARBOLES

2-3, B, B*, B+

Karim Guevara Puente de la Vega


Agenda
 Árbol 2-3
 Árbol B, B*, B+
Arboles 2-3
 Los árboles 2-3 son árboles cuyos nodos internos
pueden contener hasta 2 elementos.
 Por lo tanto un nodo interno puede tener 2 o 3 hijos,
dependiendo de cuántos elementos posea el nodo.
Arboles 2-3
 Todas las hojas están a la misma profundidad, es decir, son
árboles perfectamente balanceados.

 Se sigue cumpliendo la propiedad de los árboles binarios:


nodos internos + 1 = nodos externos.
 Dado que el árbol 2-3 es perfectamente balanceado, la altura de
éste esta acotada por:
Arboles 2-3 – inserción de X
 Se realiza una búsqueda infructuosa de X y se inserta
dicho elemento en el último nodo visitado durante la
búsqueda:
 Si el nodo donde se inserta X tenía una sola llave (dos
hijos):
Arboles 2-3 – inserción de X
 Si el nodo donde se inserta X tenía dos llaves (tres hijos),
overflow:

 Ejercicio 1: insertar la secuencia: 1,2,3,4,5,6,7,8


Arboles 2-3 – eliminación de Z
 Si Z no es hoja, se reemplaza por el sucesor o
antecesor, y se eliminar éste último.
 El nodo donde se encuentra Z contiene dos elementos.
Arboles 2-3 – eliminación de Z
 El nodo donde se encuentra Z contiene un solo elemento
(underflow):
Arboles 2-3 – eliminación de Z
Si el nodo hermano contiene solo una llave

 Cuál es el costo de las operaciones de búsqueda,


inserción y eliminación en el peor caso? .

 Ejercicio 2: eliminar 5 y 2 del árbol del ejercicio 1.


Árboles B
 Ärboles B (Bayer y Mc Creight) son árboles balanceados,
diseñados para trabajar con dispositivos de
almacenamiento secundario (discos)
 Permiten optimizar las operaciones de E/S.
 Se dice que es de orden n, si cada nodo tiene máximo
n hijos y n-1 llaves.
 Es un árbol ordenado (generalización de un BST)
Árboles B – estructura de los nodos

 En implementaciones reales, la clave tiene un registro.


Árboles B - Propiedades
 Regla del mínimo:
 Mínimo de hijos en un nodo (grado mínimo): t= n/2  2
 Todo nodo diferente de la raíz debe tener por lo menos t-1
claves y t hijos.
 Si la raíz no es vacía, entonces la raíz debe tener por lo menos
una clave.
 Regla del máximo:
 Un nodo interno puede tener como máximo n hijos y n-1
claves (nodo lleno).
Árboles B - búsqueda
A
96
100

B C

40 55 82 105 122

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 104 107 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R104 R107 R112 R119 R125 R127
Árboles B - búsqueda
A
96
100

B C

40 55 82 105 122

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 104 107 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R9966 R98 R102 R104 R107 R112 R119 R125 R127
Árboles B - búsqueda
A
105
100

B C

40 55 82 105 122

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 104 107 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R104 R107 R112 R119 R125 R127
Árboles B – inserción de X
 Realizar una búsqueda sin éxito, que nos llevará al nodo
donde será insertado X (nodo hoja).
 Si el nodo aún tiene capacidad, se insertará X en él, en el lugar
que le corresponda de acuerdo al orden establecido.
 Si el nodo está lleno, será necesario realizar una división:
• Se divide el nodo y se distribuyen las claves.
• La clave intermedia es promovida al nodo padre.
• Si el padre está lleno, se repite el proceso nuevamente.
 El peor caso tendrá lugar cuando se crea una nueva raíz, esto
es cuando se propaga la división.
 La altura del árbol aumenta.
Ejemplo de inserción
 Insertar en un árbol B de orden 5 inicialmente vacío la
secuencia de claves: 15, 4, 3, 7, 35
Árboles B - eliminación
 Al borrar una clave puede ocurrir que:
1. La clave está en un un nodo o página hoja => desplazar a la
izquierda el resto de las claves de la página
• P.e.: eliminar 45
Árboles B - eliminación
2. La clave está en una página intermedia (hacer lo mismo que
en un BST):
• sustituir la clave por el antecesor (mayor elemento del sub árbol
izquierdo), o
• sustituir la clave por el sucesor (menor elemento del sub árbol
derecho)
Árboles B - eliminación
 Subocupación de una página/nodo (underflow):
 Si esa página no es la raíz, habrá que reorganizar el árbol.
Dos posibilidades:
• Equilibrado: (Redistribución)
• Fusión de páginas: (Concatenación)
• Su propagación hasta la raíz, reduce la altura del árbol.
Árbol B*
 Perfeccionamiento de la utilización de memoria de un árbol
B (uso de memoria por lo menos al 66.67%).
 Retraza la división de un nodo cuando ocurre desborde.
 Extiende la idea de redistribución durante la inserción en
vez de la division.
 Divide de dos a tres en lugar de uno a dos, en algunas
estrategias se exceptúa la raíz.
B* - Propiedades
 Tomando en cuenta un árbol de orden n=512, se tendría:

indicador Arbol B Arbol B*


Máximo Descendientes : n= 512 Descendientes : n= 512
Claves = 511 Claves = 511
Mínimo Descendientes : n/2= 256 Descendientes : 2n/3 =341
Claves = 255 Claves = 340

 ¿Para un árbol B* de orden 29, cuáles son los mínimos y


máximo de claves?
B* - Inserción
 Insertar la clave en la página correspondiente siguiendo
el algoritmo del árbol B.
 Si la página tiene aún espacio, el proceso concluye.
 Sino:
 Redistribuir
 Dividir
• Dos - tres
• Raiz: uno - dos, uno - tres
B* - Inserción
 Inserción con redistribución: dejar la mitad a cada lado

Orden N+1 y m<N

𝑁+𝑚+2
∝=
2
B* - Inserción
 P.e.: Inserción con redistribución
B* - Inserción
 Inserción con división: cada página recibirá (2n/3)-1 claves y
se promocionan dos claves a la página superior.
n=N+1 orden del árbol.

2(𝑛 − 1) 𝛽 =
4(𝑛−1)
+1
∝= 3
3
B* - Inserción
 P.e.: inserción con división

 = 2(n-1)/3 = 8/3= 2
 = 4(n-1)/3 + 1 = 16/3 + 1 = 6
Mín.claves = (2n/3) - 1 = 2
B* - Inserción en la Raíz
 Si se considera división de uno a dos:
 Es factible que las páginas hijas de la raíz tengan menos claves
que lo establecido por la regla del mínimo.
 P.e., para un árbol B* de orden 8:

8 13 17 20 21 24 30

19

Mín.claves = (2n/3) - 1 = 4
20

División 1-2 8 13 17 19 21 24 30
B* - Inserción en la Raíz
 Se considera división de uno a tres:
 Aumentar la capacidad de la Raíz, de forma que al dividirse se
produzcan tres nodos con mínima cantidad de claves por lo
menos.
(mínimo de claves * 3 + 2 )
 P.e. para un árbol B* de orden 8:
19
8 13 17 20 21 24 30 32 35 36 41 44 47 53
Mín.claves = 4
Cap.Raíz 19
= 4*3+2= 14
 = 2(n-1)/3 = 4
 = 4(n-1)/3 +1 = 10

20 36
División 1-3

8 13 17 19 35 41 44 47 53
B* - Eliminación
 Similar al procedimiento de eliminación de un árbol B:
 Si es necesario se redistribuye,
 Sino, fusionar de 3 a 2
 Considerar la capacidad de la raíz.

20 35

8 13 17 19 21 24 30 32 36 41 44 47

30
Eliminar(24)

8 13 17 19 20 21 32 35 36 41 44 47
Árbol B+
 Es una mejora sobre los árboles B.
 Con las misma propiedades que el árbol B, pero formado
por:
 Índice: constituido por los nodos intermedios.
• Forman un árbol B
 Secuencia: páginas hojas enlazadas secuencialmente en las
que se repiten algunas de las claves de nodos intermedios.
 Las operaciones por clave empiezan en la raíz del árbol.
 El proceso secuencial empieza en la hoja más a la
izquierda
B+ - Estructura

Índice: un
árbol-B
Búsqueda
aleatoria

Búsqueda
secuencial

....
Claves: el conjunto
secuencial
B+ - Estructura
 Los nodos índices y nodos hoja pueden tener diferentes
formatos y tamaños.

X<K1 Ki -1 X< Ki Kq -1  X
Árbol B+
A
 P.e.:
98

B C

36 53 81 107 119

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 107 109 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R107 R109 R112 R119 R125 R127
Eficiencia del ÁrbolB+
 Retiene la eficiencia de la búsqueda e inserción del árbol-B
 Incrementa la eficiencia del hallazgo del registro
siguiente en el árbol de O(log n) a O(1).
 Ventaja: no necesita guardar apuntador a registros en los
nodos no-hojas.
B+ - Búsqueda
 Igual que en el árbol B, con la diferencia que, no debemos
detener la búsqueda cuando se haya encontrado la clave en la
página raíz o en una página intermedia.
 Se debe proseguir en la página referenciada por
la rama izquierda o derecha de dicha clave.
 Si la clave existe, se encontrará en página hoja.
 Sino, sólo existe en el índice del árbol
B+ - Búsqueda
A
96
96

B C

36 53 81 107 119

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 107 109 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R107 R109 R112 R119 R125 R127
B+ - Búsqueda
A
96
96

B C

36 53 81 107 119

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 107 109 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 RR9966 R98 R102 R107 R109 R112 R119 R125 R127
B+ - Búsqueda
A
107
96

B C

36 53 81 107 122

D E F G H I J

8 17 36 46 53 56 65 72 81 83 96 98 102 107 109 112 119 125 127

R8 R17 R36 R46 R53 R56 R65 R72 R81 R83 R96 R98 R102 R110077 R109 R112 R119 R125 R127
B+ - Inserción
 Similar al proceso de inserción en un árbol B, pero ….
 Si la página donde se inserta aún tiene espacio, se inserta y el
proceso termina.
 Pero, si se inserta una clave en una página hoja que esta
llena:
• Esta se divide de 1 a 2
• Asciende la copia de la clave central, el original se queda en la hoja,
apuntando a su registro.
• La página actual contendrá: (n/2+1) ó (n/2)
• La página nueva contendrá: (n/2) ó (n/2+1)
B+ - Inserción
 Inserción sin división: en el B+ de orden 5 insertar el 97
81

36 53 98 104

97

8 17 36 46 53 56 65 72 81 96 98 102 104 125 127

R8 R17 R36 R46 R53 R56 R5R67605 RR6R57722 R8811 R96 R98 R102 R104 R125 R127
R
B+ - Inserción

81

36 53 98 104

8 17 36 46 53 56 65 72 81 96 97 98 102 104 125 127

R8 R17 R36 R46 R53 R56 R5R67605 RR6R57722 R8811 R96 R97 R98 R102 R104 R125 R127
R
B+ - Inserción
 Inserción con división: en el B+ de orden 5 insertar el 70
81

36 53 98 104

70

8 17 36 46 53 56 65 72 81 96 97 98 102 104 125 127

R8 R17 R36 R46 R53 R56 R5R67605 RR6R57722 R8811 R96 R97 R98 R102 R104 R125 R127
R
B+ - Inserción

81

70

36 53 98 104

8 17 36 46 53 56 65 70 72 81 96 97 98 102 104 125 127

R8 R17 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Inserción

81

36 53 70 98 104

8 17 36 46 53 56 65 70 72 81 96 97 98 102 104 125 127

R8 R17 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación
 Indice: (niveles intermedios y raíz) similar al proceso de
eliminación de un árbol B.
 Secuencia: (Nivel hoja), si la clave que se está eliminando
tiene una copia en el índice, sólo se elimina la clave que se
encuentra en página hoja:
 Si al eliminar la clave el número de claves es mayor o igual al
mínimo de claves, el proceso finaliza.
 Si hay menos que el mínimo, se procede a realizar equilibrado o
fusión
• A consecuencia de estas operaciones, las claves copiasdel índice
se eliminan.
B+ - Eliminación
 P.e.: en un árbol B+ de orden 5, eliminar 17
81

Eliminar(17)

36 53 70 98 104

8 17 36 46 53 56 65 70 72 81 96 97 98 102 104 125 127

R8 R17 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación

81

36 53 70 98 104

8 36 46 53 56 65 70 72 81 96 97 98 102 104 125 127

R8 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación
 P.e.: en un árbol B+ de orden 5 eliminar 98
81

Eliminar(98)

36 53 70 98 104

8 36 46 53 56 65 70 72 81 96 97 98 102 104 125 127 nill

R8 R36 R46 R53 R56 R65 R70 R96 R97 R98 R102 R104 R125 R127
R72 R81
B+ - Eliminación

81

36 53 70 98 104

8 36 46 53 56 65 70 72 81 96 97 102 104 125 127 nill

R8 R36 R46 R53 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
 P.e.: en un árbol B+ de orden 5 eliminar 53
81

Eliminar(53)

36 53 70 98 104

8 36 46 53 56 65 70 72 81 96 97 102 104 125 127 nill

R8 R36 R46 R53 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación

81

Eliminar(53)
Equilibrado

36 53 70 98 104

8 36 46 56 65 70 72 81 96 97 102 104 125 127 nill

R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación

81

Eliminar(53)
Equilibrado

36 53 70 98 104

Copia
(56)

8 36 46 56 65 70 72 81 96 97 102 104 125 127 nill

R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación

81

36 56 70 98 104

8 36 46 56 65 70 72 81 96 97 102 104 125 127 nill

R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación
 P.e.: en un árbol B+ de orden 5 eliminar 104
81

Eliminar(104)

36 56 70 98 104

8 36 46 56 65 70 72 81 96 97 102 104 125 127 nill

R8 R36 R46 R56 R65 R70 R96 R97 R102 R104 R125 R127
R72 R81
B+ - Eliminación

81

Es copia
Eliminar(104)
Fusión
36 56 70 98 104

8 36 46 56 65 70 72 81 96 97 102 125 127 nill

R8 R36 R46 R56 R65 R70 R96 R97 R102 R125 R127
R72 R81
B+ - Eliminación

81

Descenso(93)

Redistribución
36 56 70 104

8 36 46 56 65 70 72 81 96 97 102 125 127 nill

R8 R36 R46 R56 R65 R70 R125 R127


R72 R81 R96 R97 R102
B+ - Eliminación

70

36 56 81 104

8 36 46 56 65 70 72 81 96 97 102 125 127 nill

R8 R36 R46 R56 R65 R70 R125 R127


R72 R81 R96 R97 R102

También podría gustarte