20
Árbol B Estructura de Datos en memoria secundaria

Arbol b ASIRB

Embed Size (px)

Citation preview

Page 1: Arbol b ASIRB

Árbol B

Estructura de Datos en memoria secundaria

Page 2: Arbol b ASIRB

Árboles B

Bayer y McCreight propusieron en 1970 esta estructura.

Manejan árboles de búsqueda multicamino, cuyos nodos guardan más de un elemento.

Son árboles 100% balanceados en su estructura, lo cual repercute en búsquedas eficientes y en accesos mínimos a disco.

10 20

5 8

12 18

25 65 92 99

Page 3: Arbol b ASIRB

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 nn y 2n2n elementos, excepto el nodo raíz, que puede tener entre 1 y 2n2n elementos.

– Si un nodo tiene ‘mm’ elementos, el nodo siempre contendrá m + 1m + 1 hijos si no es un nodo hoja.

Page 4: Arbol b ASIRB

Ejemplo....

Para un Árbol B de orden 3:

– Cuántos elementos máximo puede guardar cada nodo del árbol?66

– ¿Cuántos elementos mínimo puede guardar cada nodo del árbol?11 si el la raíz, , 33 cualquier otro nodo..

– ¿Cuántos hijos máximo puede tener un nodo?77

– ¿Cuántos hijos mínimo puede tener un nodo?00 si es hoja, 22 si es raíz, 4 cualquier otro nodo.

Page 5: Arbol b ASIRB

Más características del Árbol B

Un árbol B de orden nn 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

12 18

25 65 92 99

Page 6: Arbol b ASIRB

Ejemplo...

¿De qué orden es este árbol B?

10 20

5 8

12 18

25 65 92 99

Este árbol es de orden 2 ya que

puede almacenar hasta 4 elementos en

cada nodo.

Page 7: Arbol b ASIRB

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.

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.– El nodo 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.

Page 8: Arbol b ASIRB

Ejemplo....

10 20

5 8

12 18

25 65 92 99

Agregar el 4

10 20

4 5 8

12 18

25 65 92 99Si hay espacio para el elemento,

éste se agrega en el nodo. Los elementos están

acomodados de menor a mayor.

Page 9: Arbol b ASIRB

Ejemplo...

10 20

5 8

12 18

25 65 92 99

Agregar el 56

10 20 65

4 5 8

12 18 25 56

92 99

Cuando el nuevo elemento no cabe en el

nodo, se agrega otro nodo y se reparten los

elementos.

Page 10: Arbol b ASIRB

Ejemplo...

10 20 65

4 5 8

12 18 25 56

70 75 80 85

Agregar el 78

10 20 70

4 5 8

12 18 25 56 65

75 78 80 85

El árbol siempre se resiste a crecer, ya

que trata de distribuir los elementos en los nodos ya existentes.

Page 11: Arbol b ASIRB

Proceso de Eliminación

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 más apropiado. El sustituto será:

– El último elemento de la hoja más derecha del subárbol izquierdo del nodo actual (el mayor de los menores).

– El primer elemento de la hoja más izquierda del subárbol derecho del nodo actual (el menor de los mayores).

Page 12: Arbol b ASIRB

Ejemplo...

10 20 65

4 5 8

12 18 25 56

70 75 80 85

Eliminar el 8

10 20 65

4 5

12 18 25 56

70 75 80 85

Cuando el nodo tiene más elementos que el mínimo, se da de baja al elemento y termina

el proceso.

Page 13: Arbol b ASIRB

Ejemplo...

10 20 65

4 5 8

12 18 25 56

70 75 80 85

10 20 70

4 5 8

12 18 25 65

75 80 85

Eliminar el 56

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

Page 14: Arbol b ASIRB

Ejemplo...

10 20 65

4 5 8

12 18 25 56

70 75

Eliminar el 56

Cuando el nodo tiene el mínimo y los hermanos también, se une el nodo

con uno de sus hermanos y le libera el

nodo sobrante.

10 20

4 5 8

12 18 25 65 70 75

Page 15: Arbol b ASIRB

Árbol B+

Estructura de Datos en memoria secundaria

Page 16: Arbol b ASIRB

Los árboles-B+ se han convertido en la técnica mas utilizada para la organización de archivos indizados. La principal característica de estos arboles es que todas las claves se encuentran en las hojas

Árbol b+ de orden 2

Formalmente se define un árbol-B+ de la siguiente manera:

3.Cada pagina, excepto la raíz, contiene entre d y 2d elementos.4.Cada pagina, excepto la raíz, tiene entre d + 1 y 2d + 1 descendientes. Se utiliza m para expresar el numero de elementos por pagina.5.La pagina raíz tiene al menos dos descendientes.6.Las paginas hojas están todas al mismo nivel.7.Todas las claves se encuentran en las paginas hojas.8.Las claves de las paginas raíz e interiores se utilizan como índices.9.Búsqueda De Arboles-B+

Page 17: Arbol b ASIRB

Inserción en arboles b+ El proceso de inserción en árboles-B+ es relativamente simple, similar al proceso de inserción en árboles-B. La dificultad se presenta cuando desea insertarse una clave en una pagina que se encuentra llena ( m = 2d ).

En este caso, la pagina afectada se divide en 2, distribuyéndose las m + 1 claves de la siguiente forma: " las d primeras claves en la pagina de la izquierda y las d + 1 restantes claves en la pagina derecha ". Una copia de la clave del medio sube a la pagina antecesora.

Page 18: Arbol b ASIRB

Borrado 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, m queda mayor o igual a d entonces 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.

* Eliminación clave 25

Page 19: Arbol b ASIRB

2. Si al eliminar una clave, m queda menor a d entonces debe realizarse una redistribución de claves, tanto en el índice como en las paginas hojas.

* Eliminación clave 27

Page 20: Arbol b ASIRB

Creditos

Realizador por:

Francisco Barba CasadoAntonio Gomez Ostos

1º ASIR-B

Fuentes:

Elprisma.comUca (Univ.Cadiz)