Está en la página 1de 16

ESTRUCTURA DE DATOS 2

ARBOLES B

ARBOLES B
Problema de los arboles
Degeneracin Desbalanceo exagerado En el caso de un rbol binario, cuando el desbalanceo es exagerado, lo que obtenemos es una lista. Los arboles m vas, al tener (m 1) datas por nodo, tardan ms en desbalancearse, pero tambin lo hacen.

EJEMPLO DEL PROBLEMA


Insertando 10,20,30,40,50,60 y 70, en un rbol binario, lo que obtenemos es una lista.

EJEMPLO DEL PROBLEMA


Insertando 10,20,30,40,50,60 y 70, en un arbol de 3 vas:

UTILIDAD DE LOS ARBOLES


Son tiles cuando se quiere acceso directo a un registro que permite el acceso aleatorio, guardando en cada nodo un par (posicion, llave)

POR QU?
Los discos duros, permiten tener acceso aleatorio a los datos (Acceso directo). El acceso aleatorio se puede ver cuando se mueve el cursor de un archivo a un desplazamiento.
Ejemplo en java:
refArchivo.seek(nroBytesADesplazar);

POR QU? (Cont.)


En un archivo que almacena registros se puede acceder directamente al registro si se conoce su posicin (En java, y el tamao en bytes del registro para multiplicarse por la posicin).
Pos 0 Cdigo Apellido 53 Perez Nombre Juan

1
2 3 4 5 6

15 Torrez
20 Vargas 10 Avila 1 Suarez 60 Vera 7 Villa

Jose
Pedro Diego Mara Victor David

POR QU? (Cont.)


Si el archivo crece, para obtener los datos de una persona, se podra: a) Buscar a la persona en todo el archivo. Muy lento si el archivo crece mucho. b) Guardar el par (pos, cdigo) en otro archivo de fcil bsqueda. Un ejemplo de fcil bsqueda seria guardar el par (pos, cdigo) en la data de un rbol binario.

POR QU? (Cont.)


Almacenando: Pos/Llave

Pero el rbol se va desbalanceando.

ARBOLES BALANCEADOS (Arboles AVL)


Inventado por Adelson-Velskii y Landis en 1962. Los mtodos de insercin y eliminacin balancean el rbol cuando crece o decrece. La altura de la rama izquierda de un nodo no difiere en ms de uno con la altura de la rama derecha del mismo nodo y viceversa. Bsqueda, insercin y eliminacin tiene tiempo O(n log2 n)

Arboles AVL (Cont.)


Ejemplo insertando 10, 20

Desbalanceo de nivel es 1. Permitido

Arboles AVL (Cont.)


Si insertamos 30, el rbol tiene desbalance mayor a 1. Hay que balancear rotando:

ARBOLES AVL (Cont.)


Por qu ya no se usan?
Los dispositivos de almacenamiento (HD) leen o escriben bloques (sectores en los HD) de una vez (Porque es lento). Los ndices de arboles deben ser persistentes. (Guardarse en un archivo) Puede ocurrir que el rbol AVL guarde sus nodos en distintos bloques. La bsqueda se hace lenta al requerir demasiados accesos.

ARBOLES M-VIAS BALANCEADOS (ARBOLES B)


El uso de arboles de m-vas con el tamao de nodo igual al bloque de lectura del disco, permite reducir el tiempo de acceso. En un solo acceso se recuperan (m-1) datas. Recordar, los arboles m-vas se pueden desbalancear. Los arboles B, son arboles de m-vas balanceados.

ARBOLES B
Esta siempre balanceado Cmo?
El rbol crece hacia arriba. Deja muchas datas vacas (No le importa) Cada elemento busca uno hoja para insertarse

ARBOLES B
PROPIEDADES DE UN ARBOL DE M-VIAS
Si la raz no es hoja, tiene como mnimo dos subrboles. Cada nodo no raz y no hoja contiene k 1 datas y k referencias a los subrboles donde (m/2)<=k<=m Cada nodo hoja contiene k 1 datas donde (m/2)<=k<=m Todas las hojas estn en el mismo nivel.

También podría gustarte