Está en la página 1de 43

AVL vs B+

AVL
2

Definicin
El nombre AVL son las iniciales de los hombres que

idearon este tipo de rbol Adelson-Velskii y Landis en 1962. Bsicamente un rbol AVL es un rbol binario de bsqueda al que se le aade una condicin de equilibrio. Esta condicin es que para todo nodo la altura de sus subrboles izquierdo y derecho pueden diferir a lo sumo en 1.

Definicin

Caractersticas
Cada nodo tiene asignado un peso de acuerdo a las

alturas de sus subrboles


Un nodo tiene un peso de 1 si su subrbol derecho es

ms alto, -1 si su subrbol izquierdo es ms alto y 0 si las alturas son las mismas.

Ejemplo de AVL
-2 -1 6 1 -1 2 0 0 1 6 0 8 4 0 3 3 0 7

2
-1 0 1 0 4

8
0 7

Slo el rbol de la izquierda es AVL. El de la derecha viola la condicin de equilibrio en el nodo 6, ya que su subrbol izquierdo tiene altura 3 y su subrbol derecho tiene altura 1.
6

Equilibrio
Equilibrio (n) = altura-der (n) altura-izq (n) describe

relatividad entre subrbol der y subrbol izq. + (positivo) der mas alto (profundo) - (negativo) izq mas alto (profundo)
Un rbol binario es un AVL si y slo si cada uno de

sus nodos tiene un equilibrio de 1, 0, + 1

Si alguno de los pesos de los nodos se modifica en un

valor no vlido (2 o -2) debe seguirse un esquema de rotacin.

Operaciones sobre un AVL


Insertar

Balancear

Caso 1 Rotacin simple izquierda RSI Caso 2 Rotacin simple derecha RSD Caso 3 Rotacin doble izquierda RDI Caso 4 Rotacin doble derecha RDD

Eliminar Calcular Altura

Insertar
Se usa la misma tcnica para insertar un nodo en un ABB ordenado, en la cual:

Se traza una ruta desde el nodo raz hasta un nodo hoja (donde hacemos la insercin). Se inserta el nodo nuevo.

Insertar

Se vuelve a trazar la ruta de regreso al nodo raz, ajustando el equilibrio a lo largo de ella.

Si el equilibrio de un nodo llega a ser + - 2, volvemos a ajustar los subrboles de los nodos para que su equilibrio se mantenga acorde con los lineamientos AVL (que son +- 1)

10

Insertar
Insercin de valor: 3

11

Balancear
Caso 1: Rotacin simple izquierda RSI

Si esta desequilibrado a la izquierda y su hijo derecho tiene el mismo signo (+) hacemos rotacin sencilla izquierda.

12

Balancear
Caso 2: Rotacin simple derecha RSD

Si esta desequilibrado a la derecha y su hijo izquierdo tiene el mismo signo (-) hacemos rotacin sencilla derecha.

Ejemplo 1

13

Balancear
Caso 2: Rotacin simple derecha RSD

Ejemplo 2

0 -1 0
D

14

Insercin Simple a la Derecha


Insercin de valor: 3

15

Rotacin simple izquierda o derecha.


Hay varios puntos que cabe sealar aqu:

Se conserva el orden apropiado del rbol.

Restablece todos los nodo a equilibrios apropiados AVL Conserva el recorrido en orden que el rbol anterior.
Slo necesitamos modificar 3 apuntadores para lograr el nuevo equilibrio (con la de la raz)
16

Desequilibrios donde no funciona la rotacin simple

17

Balancear
Caso 3: Rotacin doble izquierda RDI

Si est desequilibrado a la izquierda (FE < 1), y su hijo derecho tiene distinto signo (+) hacemos rotacin doble izquierda-derecha.

Ejemplo 1

18

Balancear
Caso 3: Rotacin doble izquierda RDI

Ejemplo 2

19

Rotacin doble Izquierda

20

Balancear
Caso 4: Rotacin doble derecha RDD

Si esta desequilibrado a la derecha y su hijo izquierdo tiene distinto signo () hacemos rotacin doble derecha-izquierda.

Ejemplo 1

21

Balancear
Caso 4: Rotacin doble derecha RDD

Ejemplo 2

22

Eliminar
Se realiza como en un rbol binario ordenado. Al localizar el nodo que queremos eliminar seguimos este procedimiento:

Si el nodo es un nodo hoja, simplemente lo eliminamos. Si el nodo solo tiene un hijo, lo sustituimos con su hijo. Si el nodo eliminado tiene dos hijos, lo sustituimos por el hijo derecho y colocamos el hijo izquierdo en el subrbol izquierdo del hijo derecho.

23

Eliminacin de nodo con un hijo

24

Cuando se ha eliminado el nodo, es necesario volver a equilibrar el rbol:

Si el equilibrio del padre del nodo eliminado cambia de 0 a +-1 el algoritmo concluye. Si el padre del nodo eliminado cambio de +-1 a 0, la altura del rbol ha cambiado y se afecte el equilibrio de su abuelo. Si el equilibrio del padre del nodo eliminado cambia de +- 1 a +- 2 hay que hacer una rotacin.

25

B+

Definicin
Denominamos rbol B+ a la estructura que combina un fichero de datos estructurado en una secuencia de bloques de registros con un rbol B para indexar dichos bloques.

27

Caracteristicas
Su principal caracterstica es que todas las claves se

encuentran en las hojas.Los rboles B+ ocupan algo ms de espacio que los rboles B,pues existe duplicidad en algunas claves.
En los rboles B+ las claves de las pginas raz e interiores

se utilizan nicamente como ndices.


Para facilitar el recorrido secuencial rpido las hojas se

pueden vincular,obtenindose ,de esta forma,una trayectoria secuencial para recorrer las claves del rbol.

Caracteristicas
Son arboles de tipo de ndice multinivel Su estructura consiste en tener nodos internos y nodos

hojas (punteros a bloques y llaves de bsqueda)


Los nodos internos van a tener un orden p (numero de

punteros)
P-1 llaves de bsqueda (excepto el nodo raz) Se manejan punteros a otros nodos y al bloque de datos

Operaciones en Arboles B+
Bsqueda:
Se comienza buscando por la raz y si la clave buscada es

menor a la leda se baja al subrbol de la izquierda.


En cambio, si es mayor o igual, se baja al subrbol de la

derecha.

Operaciones en Arboles B+
Inserciones: 1. Se manejan comenzando por el set secuencial. Se identifica por medio del algoritmo de bsqueda en que bloque del secuence set se deber insertar la clave.

Operaciones en Arboles B+
Inserciones: 2. Si el bloque no est lleno se inserta la clave y se debe verificar que el separador siga sirviendo, si no es as se actualiza (esto ser necesario cuando se inserte una clave al principio de un bloque). Si el bloque est lleno se deber hacer un split en el cual no se promueven claves sino que todas se distribuyen en los dos bloques resultantes.

Operaciones en Arboles B+
Inserciones: 3. Una vez distribuidas las claves se selecciona un separador y es este separador lo que se promueve al Index Set. 4. Si al promover este separador se produce un overflow en el nodo en el que se lo debe insertar, se procede como en un rbol B comn.

Operaciones en Arboles B+
Eliminaciones: 1. Si al eliminar la clave(siempre en una hoja)el nmero de claves es mayor o igual a m/2 el proceso ha terminado. Las claves de las pginas raz o internas no se modifican aunque sean una copia de la eliminada, pues siguen constituyendo un separador vlido entre las claves de las pginas descendientes.

Operaciones en Arboles B+
Eliminaciones:

2. Si al eliminar la clave el nmero de ellas en la pgina es menor que m/2 ser necesaria una fusin y redistribucin de las mismas tanto en las pginas hojas como en el ndice.

Ejemplo Arboles B+
5,8,1,3,7,9,12,6 P=3(fanout) Key(p-1)
X<= k1
5

X> k1

X<= k1
1 3 5

X<= k2
6

X<= k1
7 8

X<= k2
9 12

DIFERENCIAS
Se puede deducir que los rboles B+ no son rboles

binarios como lo son los binarios de bsqueda o los AVL.


En los rboles B los nodos se agrupan dentro de pginas,

mientras que en los AVL no.


Los arboles B conservan la propiedad de acceso aleatorio

rpido y permiten adems un recorrido secuencial rpido, mientras que en los AVL se tiene que pasar por la raz y cada uno de los nodos padre.

37

DIFERENCIAS
Los arboles AVL utilizan un mecanismo de balanceo

cuando al insertar o eliminar un nodo, este no cumpla con su condicin de equilibrio; mecanismo que no es necesario en los B+.
En los arboles AVL se maneja la insercin y/o eliminacin

por hojas, su peso y altura; mientras que en los B+ se realiza por condiciones verificando si el valor a ingresar es < que el de la derecha y > que el de la izquierda

38

CONCLUSIONES
La insercin y eliminacin en AVLs es la misma que en los

ABBs.
En los aboles AVL la diferencia entre las alturas de los

subrboles derecho e izquierdo no debe excederse en ms de 1.


En los arboles B+ los nodos hojas son siempre los nodos

que guardan los valores al disco duro


Lo que se tenga en un lado se tiene que tener en los

dems nodos raz y en los dems nodos hoja

39

CONCLUSIONES
El numero de llaves en los arboles B+ siempre ser igual

a p-1
Aunque el fanout del rbol B+ fuera mas grande aun as

se podra permitir que la raz tuviera una sola llave


Existen dos tipos de punteros para los arboles B+,

punteros a los archivos de datos y punteros entre nodos


Existen tres situaciones de borrado en los arboles B+

40

Referencias
es.tldp.org/Tutoriales/doc...arboles-avl/avl-

trees.pdf es.scribd.com/doc/14088390/Arboles-AVL decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/Ejer_ Avl.htm profesores.elo.utfsm.cl/~tarredondo/info/dato s.../c11.pdf

41

Referencias
decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/arb_B

3.htm wwwdi.ujaen.es/asignaturas/eedd2/tema6.pdf estructuradedatosgrupo1.blogspot.com/.../arboles-b.html organizacion.googlecode.com/svn/.../Arboles %20B.pdf

43