Está en la página 1de 7

Tema 3

rboles B y B+

3.8 rboles B y B+

! Problema de los ABB cuando se usa almacenamiento secundario: ! la bsqueda de un elemento requerira muchos accesos a disco (un acceso a disco es extremadamente lento si lo comparamos con un acceso a memoria) ! Ej.: para un milln de elementos ! N accesos a disco = O(h) = O(log2 1.000.000) 20 ! Solucin: conseguir mayor grado de ramificacin para as tener menor altura en el rbol. La altura de un rbol M-ario (multicamino) completo es O(logM N) ! Ej.: para un milln de elementos y M = 10 ! N accesos a disco = O(h) = O(log10 1.000.000) = 6

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

62

Tema 3

rboles B y B+

! Almacenar ms datos en cada nodo del rbol, sin que el incremento suponga un trabajo extra de localizacin de un elemento en el nodo. Este nodo se llamar pgina p0 k1 p1 k2 p2 ...ki-1 pi-1 kikm-1 pm-1

" Una pgina es un nodo donde los ki son elementos tales que ki-1 < ki, donde 0 < i < m, y pi, donde 0 i < m, son apuntadores a subrboles " i =1..m-2, pi apunta a una pgina cuyas claves son mayores o iguales que ki y menores que ki+1 " p0 apunta a una pgina cuyas claves son menores que k1 " pm-1 apunta a una pgina cuyas claves son mayores o iguales que km-1 " A cada pgina se accede en bloque

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

63

Tema 3

rboles B

3.8.1 rboles B

Caso especial de rboles equilibrados, cuyos nodos pueden tener ms de dos hijos y cuyas ramas estn ordenadas a modo de rbol binario de bsqueda

! ! !

Propuesto por Bayer y McCreight Su principal utilidad se encuentra en la gestin de los ndices en bases de datos Formalmente: a) Cada pgina, excepto la pgina raz y las pginas hojas, tienen entre "m/2# y m hijos, donde m es el orden del rbol b) c) d) Cada pgina, excepto la raz, contiene entre "m/2# - 1 y m - 1 elementos La pgina raz, o es una hoja o tiene entre 2 y m hijos Las pginas hojas estn todas al mismo nivel
I.T. en Informtica de Gestin/Sistemas Universidad de Huelva 64

Algoritmos y Estructuras de Datos II

Tema 3

rboles B

! Ej. de rbol B de orden 5: ! Cada nodo, excepto la raz, puede tener entre 3 y 5 hijos ! Cada pgina, excepto la raz, contiene entre entre 2 y 4 elementos ! La pgina raz tiene 2 hijos

25 3 1 2 4 5 9 15 16 17 28 33 37 50 39 48 52 55 67 89

10 13

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

65

Tema 3

rboles B

Operacin de bsqueda ! ! ! ! Generalizacin del proceso de bsqueda en ABB La pgina sobre la cual vamos a buscar debe estar en memoria principal Sea x el elemento buscado Pasos: 1. 2. Si n (nmero de elementos de la pgina) es suficientemente grande, se puede utilizar la bsqueda binaria. En caso contrario, una bsqueda secuencial ser suficiente Si la bsqueda es infructuosa se estar en una de las siguientes situaciones: a. b. c. 3. ki -1< x < ki para 1 < i n. La bsqueda contina en la pgina apuntada por pi-1 kn < x. La bsqueda contina en la pgina apuntada por pn x < k1. La bsqueda contina en la pgina apuntada por p0

Si en algn caso el apuntador pi es nulo, es decir, si no hay pgina hijo, entonces no hay ningn elemento x en todo el rbol y se acaba la bsqueda
I.T. en Informtica de Gestin/Sistemas Universidad de Huelva 66

Algoritmos y Estructuras de Datos II

Tema 3

rboles B

Operacin de insercin ! Pasos: ! Se busca la clave a insertar en el rbol siguiendo el algoritmo anterior ! Si la clave no est en el rbol, la bsqueda termina en un nodo hoja ! Si el nodo hoja no est lleno (n < m 1), la insercin es posible en dicho nodo y el proceso termina Ej: insercin del 45
25 3 1 2 4 5 9 15 16 17 28 33 37 50 39 48 52 55 67 89

10 13

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

67

Tema 3

rboles B

Operacin de insercin ! Pasos: ! Si la hoja est llena (n = m 1), se divide el nodo (incluyendo virtualmente la nueva clave) en dos nodos. La clave central sube en el rbol por el camino de bsqueda para ser insertada en el nodo antecedente. En esta ascensin puede ocurrir que se llegue al nodo raz y ste se encuentre lleno. En ese caso, aumenta en 1 la altura del rbol Ej: insercin del 70
25 3 1 2 4 5 9 15 16 17 28 33 37 50 39 48 52 55 67 89

10 13

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

68

Tema 3

rboles B

Operacin de eliminacin ! Casos: ! El elemento a borrar se encuentra en una pgina hoja ! se suprime ! La clave a borrar no se encuentra en una pgina hoja, entonces debe sustituirse por la clave que se encuentra ms a la izquierda en el subrbol derecho o por la clave que se encuentra ms a la derecha en el subrbol izquierdo ! Debe verificarse el valor de n despus de la eliminacin: ! Si n "m/2# 1 entonces se trasladan las claves hacia la izquierda y termina la operacin de borrado ! En caso contrario, se exploran las hojas hermanas adyacentes. Si en alguna de ellas, n > "m/2# 1, uno de los elementos sube al nodo padre para que descienda de ste otra clave al nodo que se quiere restaurar

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

69

Tema 3

rboles B

Operacin de eliminacin ! Ej: eliminacin del 39


25 3 1 2 4 5 9 15 16 17 28 33 37 50 39 48 52 55 67 89

10 13

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

70

Tema 3

rboles B

Operacin de eliminacin ! Debe verificarse el valor de n despus de la eliminacin: ! Si en las hojas hermanas contiguas n = "m/2# 1, se fusiona con una de sus hermanas adyacentes, incluyendo en el nuevo nodo el elemento del padre situado entre ambas pginas. Esta fusin puede dejar al padre con un nmero de elementos por debajo del mnimo ! el proceso se propaga hacia la raz. Si se utiliza el ltimo elemento de la raz, la altura del rbol disminuye en una unidad

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

71

Tema 3

rboles B

Operacin de eliminacin ! Ej: eliminacin del 25


25 3 1 2 4 5 9 15 16 17 28 33 37 50 39 48 52 55 67 89

10 13

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

72

Tema 3

rboles B

Operacin de eliminacin ! Ej: eliminacin del 33


17 3 1 2 4 5 9 10 13 15 16 28 33 37 50 39 48 52 55 67 89

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

73

Tema 3

rboles B+

3.8.2 rboles B+ ! ! Los rboles-B+ se han convertido en la tcnica ms utilizada para la organizacin de archivos indexados Todas las claves se encuentran en las hojas (a diferencia de los rboles-B, en que las claves podan estar en las pginas intermedias) y por lo tanto cualquier camino desde la raz hasta alguna de las claves tienen la misma longitud Formalmente: a) b) c) d) e) f) g) Cada pgina, excepto la raz, tiene entre "m/2# y m descendientes Cada pgina, excepto la raz , contiene entre "m/2# 1 y m 1 elementos La pgina raz, o es hoja o tiene al menos 2 hijos Las pginas hojas estn todas al mismo nivel Todas las claves se encuentran en las pginas hojas Las claves de las pginas raz e interiores se utilizan como ndices Las hojas estn enlazadas
I.T. en Informtica de Gestin/Sistemas Universidad de Huelva 74

Algoritmos y Estructuras de Datos II

Tema 3

rboles B+

! Observaciones: ! La aparicin de una clave en un nodo interior no garantiza su existencia en un nodo hoja ! Al buscar un elemento, si ste se encuentra en una pgina raz o interior, debe continuarse la bsqueda por la rama derecha de dicha clave, hasta llegar a una hoja ! Ej. de rbol B+ de orden 5:

29 13 20 10 11 13 15 20 23 26 27 29 32 35 45 35 37 45 49

Algoritmos y Estructuras de Datos II

I.T. en Informtica de Gestin/Sistemas

Universidad de Huelva

75

También podría gustarte