La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014.

Presentaciones similares


Presentación del tema: "Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014."— Transcripción de la presentación:

1 Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014

2 2 ¿Qué es un árbol B?  Es un árbol que almacena en cada nodo más de un elemento de información.  Se utiliza para almacenar grandes volúmenes de información en memoria secundaria.  Están completamente balanceados, a diferencia de los árboles AVL pueden tener más de dos hijos y guardar más de un elemento en un nodo (árboles multicamino).  La altura del árbol no es muy grande a pesar de guardar bastante información  Propuesto en 1970 por Bayer y McCreight.

3 3 Definición de un árbol B  Un árbol B de orden n: Todas las hojas en el árbol están en el mismo nivel Cada nodo contiene entre n y m=2n elementos (excepto la raíz que contiene entre 1 y 2n). El número de hijos por nodo será de 0,1,2,…, m+1. Los elementos de un nodo están ordenados linealmente. Los elementos del árbol están organizados siguiendo las propiedades del ABB (menores a la izquierda, mayores a la derecha).

4 4 Ejemplos de árboles B Árbol de orden n=1, 2 niveles 6 | 9 2 | 4 10 | 15 7 m=2, por tanto máximo tiene m+1 hijos Árbol de orden n=2, 3 niveles m=4, por tanto máximo tiene m+1 hijos 2 | 5 | 7 | 8 25 30 | 40 10 | 20 13| 14 |15| 18 22 | 24 26 |27 | 28 32| 35 | 38 41 |42 | 45

5 5 Inserción de un nodo en un árbol B Busque el nodo hoja donde se debe insertar el nuevo elemento. Sobre este nodo pueden ocurrir tres casos: 1. El nodo no está lleno, es decir, tiene menos de 2n elementos 1. Se inserta el elemento y se termina el proceso de inserción. 2. El nodo está lleno, es decir, tiene 2n elementos, por lo que no tiene capacidad de guardar más (dado que se tienen 2n+1 elementos se hace una división): 1. Se crea un nuevo nodo que contenga los n elementos mayores. 2. Los n elementos menores se quedan en el nodo original 3. El valor medio pasa a ser el padre de los nodos anteriores 4. El proceso de inserción continua, se inserta el valor medio en el nodo correspondiente y se verifica de nuevo en que caso está ubicado. 3. El nodo esta lleno y es la raíz del árbol, es decir, tiene 2n elementos, (dado que se tienen 2n+1 elementos se hace una división) 1. Se crea un nuevo nodo que contenga los n elementos mayores 2. Los n elementos menores se quedan en el nodo original 3. Se crea un nuevo nodo, que toma como único elemento el valor medio y este nodo se convierte en la raíz del árbol

6 Ejemplo 1: inserción del 58 30 | 38 | 43 44 | 50 | 5610 | 20 | 25 32 | 34 40 | 42 10 | 20 | 25 Árbol B de Orden 2, al insertar el valor 58 cae en el caso 1 puesto que el nodo no está lleno 30 | 38 | 43 44 | 50 | 56 | 5810 | 20 | 25 32 | 34 40 | 42 10 | 20 | 25

7 Ejemplo 2: inserción del 60 Árbol B de Orden 2, al insertar el valor 60 cae en el caso 2 puesto que el nodo está lleno y ocurre el desborde 30 | 38 | 43 44 | 50 | 56 | 58|6010 | 20 | 25 32 | 34 40 | 42 10 | 20 | 25 Tiene 5 elementos y máximo son 2n=4 30 | 38 | 43 44 | 50 | 56 | 5810 | 20 | 25 32 | 34 40 | 42 10 | 20 | 25

8 Ejemplo 2: inserción del 60 … Se divide el nodo en 3 partes 30 | 38 | 43 44 | 50 10 | 20 | 25 32 | 34 40 | 4210 | 20 | 25 58 | 60 56 El 56 se envia hacia el nodo padre y el nodo raíz tiene un nuevo hijo 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 50

9 Ejemplo 3: inserción del 52,54 y 46 Árbol B de Orden 2, al insertar el valor 52 cae en el caso 1 puesto que el nodo no está lleno 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 50 | 52 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 50

10 Ejemplo 3: inserción del 54 y 46 Árbol B de Orden 2, al insertar el valor 54 cae en el caso 1 puesto que el nodo no está lleno 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 50 | 52 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 50 | 52 | 54

11 Ejemplo 3: inserción del 46 Se divide el nodo en 3 partes Tiene 5 elementos y máximo son 2n=4 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 46 | 50 | 52 | 54 50 30 | 38 | 43 | 56 58 | 60 10 | 20 | 25 32 | 3440 | 42 10 | 20 | 25 44 | 46 52 | 54 Árbol B de Orden 2, al insertar el valor 46 cae en el caso 3 puesto que la raíz está llena y la hoja también

12 Ejemplo 3: inserción del 46 … El 50 se envía hacia el nodo padre y el nodo raíz tiene un nuevo hijo, pero sólo puede tener 5 y tiene 6, por lo que es necesario siempre verificar que no se exceda el número de hijos, en este caso en realidad dado que el nodo raíz se ha desbordado los 6 hijos sólo son aparentes. 30 | 38 | 43 | 50 | 56 58 | 60 32 | 3440 | 42 10 | 20 | 25 44 | 46 52 | 54 Sin embargo el nodo raíz ahora tiene más de 4 elementos por tanto estamos en el caso 3, así que dividimos en 3 partes 30 | 38 58 | 60 32 | 3440 | 42 10 | 20 | 25 44 | 46 52 | 54 43 50 | 56

13 Ejemplo 3: inserción del 46 … Ahora dado que se crearon dos hijos a partir del nodo raíz, el árbol aumenta de nivel, el 43 queda como nodo raíz 30 | 38 58 | 60 32 | 3440 | 42 10 | 20 | 25 44 | 46 52 | 54 50 | 56 43

14 Ejercicio  Sea un árbol B de orden 1: Insertar consecutivamente los elementos 30,40,25,10,15,19,35,38,20,100


Descargar ppt "Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014."

Presentaciones similares


Anuncios Google