Está en la página 1de 36

ESTRUCTURA DE DATOS

Árbol B

Docente: Carlos A. Ruiz De La Cruz Melo


Correo: ruizdelacruzmelo@uigv.edu.pe
ARBOL B
Un árbol B es un árbol de m ramas, con paginas
también denominadas nodos, que almacenan un
máximo de m-1 claves y que tienen las siguientes
características:

El número mínimo de claves por nodo es (m/2)-1,


excepto la raíz que puede tener menos.

En un árbol B, los nodos hojas están en un mismo


nivel.
El árbol siempre tiende a estar ordenado.

Un árbol del cual parten m ramas, registrara un


máximo de m-1 claves por nodo.

Un factor básico en un árbol B es el orden (m), el


cual nos dice que es el número máximo de ramas
que pueden salir de un nodo.
Porque usar arboles B ?

Los arboles B se usan cuando existe


un volumen de información a
procesar tan grande que se hace
necesario almacenarla en disco, y en
el cual los arboles ABB simples o
arboles AVL no hacen un buen
tiempo de acceso a la información
registrada en memoria secundaria.
EJEMPLO DE ARBOL B
Un nodo con
Ejemplo de un árbol-B de ORDEN 5 y de espacio para
profundidad 2. 4 claves

16 81

5 10 45 78 85 97 99
EJEMPLO DE NO ARBOL B
COMO ES DE ORDEN 5
DEBE TENER CADA NODO 2
CLAVES COMO MINIMO

16

5 10 45
ARBOL B vs ABB y AVL ABB AVL

Un ABB o un AVL solo puede


registrar un dato en cada nodo, lo
que causa que el acceso a disco
se haga cada vez que se cargue
un dato en el árbol.

DISCO

Arbol B
VENTAJAS DE ARBOLES B

Para gran cantidad de información esencialmente cuando los nodos


se alojan en almacenamiento secundario, evitando el uso reiterado de
acceso al disco.

La ventaja de un árbol B es que al tener un control sobre el número de


nodos hijos que pueda tener un nodo interno, la altura del árbol
disminuye, las tareas de tener que equilibrar el árbol también
disminuyen, aumentando por consecuencia la eficiencia de la
estructura.

El número de consultas en un árbol B se puede predecir.

El número de consultas no aumentara con el numero de


registros a ordenar como si sucede con un árbol ABB simple.
DESVENTAJA DE
ARBOLES B

El mantener un árbol B es mas complejo, tal es


así que una operación de ingresar, borrar o
modificar causa en un nodo unión o desunión
obligando a una serie de operaciones para
equilibrar el árbol.
Al insertar 44 las
INSERCION DE CLAVES claves tienen el orden
siguiente:
Las claves se van ordenando
automáticamente en un árbol B 16, 44, 56, 67, 81

Se promociona la
clave del medio
56 16

56 16 56 67 81

67
44
56 67 56

81

56 67 81 16 44 67 81
INSERCION

Insertamos: 72, 63

56

16 44 63 67 72 81

Luego insertamos: 95

56 72

16 44 63 67 81 95
INSERCION

Se insertan los siguientes valores:

8, 20, 26, 33, 48, 52, 84, 99


20 44 56 72

8 16 63 67 81 84 95 99

48 52

26 33
El árbol ha completado
el nodo raíz,…que
sucede si insertamos
el valor 90
Se promociona la
INSERCION clave del centro y
sube al nodo raiz.

Pero ya esta lleno!

90
20 44 56 72

8 16 63 67 81 84

48 52 95 99

26 33
INSERCION Finalmente queda
el árbol como se
muestra
56

20 44 72 90

8 16 48 52

26 33 63 67 95 99

81 84
ELIMINACION DE CLAVES

Se eliminara la clave 85

43 73

12 38 48 63 76 85 95 98

43 73

12 38 48 63 76 95 98
ELIMINACION DE CLAVES

Se eliminara la clave 73
43 73

12 38 48 63 76 85 95 98

43 76

12 38 48 63 73 85 95 98

43 76

12 38 48 63 85 95 98
ELIMINACION DE CLAVES

Se eliminara la clave 48

43 73

12 38 48 63 76 85 95 98

43 76

12 38 63 73 85 95 98
ELIMINACION DE CLAVES

Se eliminara la clave12

43 73

12 38 48 63 76 85 95 98

73

38 43 48 63 76 85 95 98
ARBOL B +
 El árbol B es bueno para la búsqueda de un elemento del
árbol mediante su clave, limitando la cantidad de accesos al
soporte drásticamente.

 No obstante, si lo que se desea es encontrar un elemento y


a partir de allí leer secuencialmente los siguientes
elementos, nos encontramos a un problema difícil de
solucionar que nos lleva al peor de los casos de tener que
recorrer gran cantidad de nodos y realizando gran cantidad
de accesos a soporte.

 En ese caso se desearía tener una organización donde las


claves se encuentren físicamente contiguas, ordenadas y
una facilidad y gasto de pocos recursos para el
mantenimiento (alta y bajas de claves).

 El árbol B+ surge como una adecuada solución a este


problema, combinando la estructura de un árbol B y
permitiendo tanto el acceso por referencia como el acceso
secuencial.
CARACTERISTICAS DE
LOS ARBOL B +
1. Todas las paginas hojas tienen la misma altura
2. La información se encuentra ordenada.
3. Toda la información se encuentra almacenada en las
paginas hoja, por lo que en las paginas internas se
puede duplicar la claves.
4. En la raíz y en las paginas internas se encuentran
almacenado índices o claves para llegar a un dato.

55 77

37 48 55 61 73 77 80 87 92
ARBOL B +
Dada la siguiente secuencia de claves:

7,25,27,15,23,19,14,29,10, 50,18,22,46,17,70,33, 58

dibuje el árbol B+ de orden 5.


SOLUCION

7 15 25 27 7, 25, 27, 15

23 23

7 15 23 25 27

23 19, 14, 29

7 14 15 19 23 25 27 29
SOLUCION
23 19, 14, 29

7 14 15 19 23 25 27 29

14 23 10

7 10 14 15 19 23 25 27 29

14 23 27 50

7 10 14 15 19 23 25 27 29 50
SOLUCION
14 23 27 18

7 10 14 15 18 19 23 25 27 29 50

14 18 23 27 22

7 10 18 19 22 27 29 50

14 15 23 25

22,46,17,70,33, 58
SOLUCION
14 18 23 27 46, 17

7 10 18 19 22 27 29 46 50

14 15 17 23 25

23 70

14 18 27 46

7 10 18 19 22 46 50 70

14 15 17 23 25 27 29
SOLUCION

23 33, 58

14 18 27 46

7 10 18 19 22 46 50 58 70

14 15 17 23 25 27 29 33
ELIMINACION EN
ARBOLES B+
La operación de borrado en árboles-B+ es mas simple que la
operación de borrado en árboles-B. Esto ocurre porque las claves
a eliminar siempre se encuentran en las paginas hojas. En
general deben distinguirse los siguientes casos:

1. Si al eliminar una clave, queda mayor o igual al mínimo


de claves, termina la operación de borrado. Las claves de
las paginas raíz o internas no se modifican por mas que
sean una copia de la clave eliminada en las hojas.

25 Eliminar la clave 25

10 13 25 27 29
ELIMINACION EN
ARBOLES B+

25 Eliminar la clave 25

10 13 25 27 29

25

10 13 27 29
ELIMINACION EN
ARBOLES B+
2. Si al eliminar una clave, la cantidad de
llaves queda menor al mínimo entonces
debe realizarse una redistribución de
claves, tanto en el índice como en las
paginas hojas.

15 25 Eliminar la clave 27

10 13 15 17 21 25 27
ELIMINACION EN
ARBOLES B+
15 25 Eliminar la clave 27

10 13 15 17 21 25 27

15 21

10 13 15 17 21 25
ELIMINACION EN ARBOLES
B+
15 21 Eliminar la clave 21

10 13 15 17 21 25

15

10 13 15 17 25
ELIMINACION EN ARBOLES
B+ 29 Eliminar clave 37

13 23 35 45

10 11 25 27 45 49

13 15 29 32 35 37

13 23 29 35

10 11 25 27 35 45 49

13 15 29 32
ELIMINACION EN ARBOLES
B+
Eliminar clave 15, 51 y 48

25

15 20 29 48

10 13 20 21 24 48 51 60 66

15 17 19 25 27 29 31 45
ELIMINACION EN ARBOLES
B+
Eliminar clave 60
25

15 20 29 48

10 13 20 21 24 60 66

17 19 25 27 29 31 45
ELIMINACION EN ARBOLES
B+
Eliminar clave 31
25

15 20 29 45

10 13 20 21 24 45 66

17 19 25 27 29 31
ELIMINACION EN ARBOLES
B+

15 20 25 29

10 13 20 21 24 29 45 66

17 19 25 27
EJERCICIO

Construya un árbol B y luego un árbol


B+ a partir de la siguiente secuencia:

23, 56, 2, 14, 78, 44, 33, 38, 12, 19, 55, 67, 60, 48,
89, 74, 65, 5, 24, 28

También podría gustarte