La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Árbol B Estructura de Datos en memoria secundaria.

Presentaciones similares


Presentación del tema: "Árbol B Estructura de Datos en memoria secundaria."— Transcripción de la presentación:

1 Árbol B Estructura de Datos en memoria secundaria

2 Introducción Para almacenar muchos datos disco, es necesario una estructura de datos eficiente. Los accesos al disco son costosos en tiempo por lo que se debe evitar realizar muchos accesos a los datos. AVL es la mejor estructura para memoria principal, pero es ineficiente si se utiliza para almacenamiento secundario. Esto se debe a la cantidad de accesos necesarios para efectuar las rotaciones. Otro problema es que se requieren tantos accesos como niveles se recorran en el árbol para efectuar la búsqueda.

3 Á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. 1020 58 1218 2565 9299

4 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. n2n 2n Cada nodo contiene entre n y 2n elementos, excepto el nodo raíz, que puede tener entre 1 y 2n elementos. m m + 1 Si un nodo tiene m elementos, el nodo siempre contendrá m + 1 hijos si no es un nodo hoja.

5 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, 3. 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? 02 0 si es hoja, 2 si es raíz, 4 cualquier otro nodo.

6 Más características del Árbol B n 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. 1020 58 1218 2565 9299

7 Ejemplo... ¿De qué orden es este árbol B? 1020 58 1218 2565 9299 Este árbol es de orden 2 ya que puede almacenar hasta 4 elementos en cada nodo.

8 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.

9 Ejemplo.... 1020 58 1218 2565 9299 Agregar el 4 1020 45 8 1218 2565 9299 Si hay espacio para el elemento, éste se agrega en el nodo. Los elementos están acomodados de menor a mayor.

10 Ejemplo... 1020 58 1218 2565 9299 Agregar el 56 1020 65 45 8 1218 2556 9299 Cuando el nuevo elemento no cabe en el nodo, se agrega otro nodo y se reparten los elementos.

11 Ejemplo... 1020 65 45 8 1218 2556 7075 8085 Agregar el 78 1020 70 45 8 1218 2556 65 7578 8085 El árbol siempre se resiste a crecer, ya que trata de distribuir los elementos en los nodos ya existentes.

12 Ejemplo 1020 6590 45 8 1218 2556 5760 7075 8085 Agregar el 66 1020 6590 45 8 1218 2556 5760 6670 8085 75 1020 4 5 8 1218 2556 5760 6670 8085 65 7590 1 2 El árbol crece de abajo hacia arriba. Cuando el árbol aumenta de altura sólo se agrega una nueva raíz. 9495 9495 9495

13 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).

14 Ejemplo... 1020 65 45 8 1218 2556 7075 8085 Eliminar el 8 1020 65 45 1218 2556 7075 8085 Cuando el nodo tiene más elementos que el mínimo, se da de baja al elemento y termina el proceso.

15 Ejemplo... 1020 65 45 8 1218 2556 7075 8085 1020 70 45 8 1218 2565 7580 85 Eliminar el 56 Cuando el nodo tiene el mínimo se toma un elemento de los hermanos.

16 Ejemplo... 1020 65 45 8 1218 2556 7075 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. 1020 45 8 1218 2565 7075

17 Ejemplo... 1020 4 5 8 1218 2556 5760 6670 8085 65 7590 Eliminar el 65 Utilizar el menor de los mayores 1020 4 5 8 1218 2556 5760 7075 8085 66 90 1020 6690 4 5 8 1218 2556 5760 7075 8085 1 2 9395 9395 9395

18 Ejemplo... 1020 60 4 5 8 1218 2556 5758 6670 8085 65 7590 Eliminar el 65 Utilizar el menor de los mayores 1020 60 4 5 8 1218 2556 5758 7075 8085 66 90 1 2 1020 4 5 8 1218 2556 5758 7075 8085 60 6690 9395 61 62 61 62 9395 61 62 9395


Descargar ppt "Árbol B Estructura de Datos en memoria secundaria."

Presentaciones similares


Anuncios Google