Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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
15
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
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
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
24
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
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
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
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
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
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
40
Referencias
es.tldp.org/Tutoriales/doc...arboles-avl/avl-
41
Referencias
decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/arb_B
43