Está en la página 1de 15

Estructura de datos II

ARBOLES AVL

Por: Ing. Edwin Calle Terrazas


INTRODUCCIÓN
Un árbol binario, fue utilizado para servir de índice a una tabla de
base de datos. Pero existe el problema, de que el árbol puede
degenerarse, de tal modo que deje de ser un árbol y se convierta
en una lista.
Es decir que si los elementos se insertan de manera creciente o
decreciente, el árbol va tener todas las ramas izquierdas o
derechas respectivamente vacías.

10 50

15 40

24 35

30 27

Arboles degenerados
En 1962, dos rusos Adelson Velskii y Landis, propusieron un
árbol binario que se autovalanceaban al hacer la inserción de los
elementos o una eliminación en un tiempo de O(log2 n). A estos
árboles lo bautizaron con el nombre de sus apellidos: Aboles AVL,
ya que fueron los primeros en proponer y desarrollar este tipo
abstracto de datos.

ARBOL BINARIO BALANCEADO (AVL)


Recordemos que la altura o profundidad de un árbol binario es el
nivel máximo e sus hojas.
Un árbol binario equilibrado o balanceado, es cuando la altura de
los dos subárboles (izquierdo y derecho) nunca difieren en más de
una unidad.

La eficiencia de búsqueda de un elemento en un árbol


binario, varia entre O(n) y O(log n)
EJEMPLO DE ÁRBOLES BALANCEADOS
El factor de equilibro o balance de un árbol, se define como la altura del
subárbol izquierdo menos la altura del subárbol derecho. Lo cual deberá
resultar 1, -1 ó 0.
Aai - Aad = 1, -1 ó 0

45 30

30 70 15 90

25 70 95

45 45

30 70 30 75

75 70 90
INSERCIÓN DE UN ELEMENTO
Se dispone ya un árbol equilibrado. A la hora de insertar un nuevo elemento,
pueden ocurrir las siguientes circunstancias para el criterio de balanceo:
1. La altura del subárbol izquierdo (Aai) y derecho (Aad) son iguales (Aai = Aad).
Cuando se inserte el nuevo elemento en el subárbol izquierdo o subárbol
derecho, no va ser causa de romper el balanceo.
2. El subárbol izquierdo y derecho tienen alturas diferentes: |Aad - Aai| = 1
2.1. Suponiendo que |Aai < Aad| puede ocurrir:
2.1.1. Si se inserta el elemento en el subárbol izquierdo, entonces Aai será igual
a Aad (Se ha mejorado el balanceo)
2.1.2. Si se inserta el elemento en el subárbol derecho, entonces se rompe el
balanceo del árbol y es necesario reestructurarlo.
2.2. Suponiendo que |Aai > Aad| puede ocurrir:
2.2.1. Si se inserta el elemento en el subárbol izquierdo, entonces se rompe el
balanceo del árbol y es necesario reestructurarlo.
2.2.2. Si se inserta el elemento en el subárbol derecho, entonces Aad será igual a
Aai (Se ha mejorado el balanceo)
PRIMER CASO: ROTACION HACIA LA DERECHA

Se inserta: 1

1 3 1 2 3

0 2 2 1 2

3 0 1

Se insertar el Nodo con elemento 1 y cambia el factor de equilibrio. En el nodo 3 se ha roto el


criterio de equilibrio. La reestructuración del árbol consiste en una rotación derecha.

1 3
SEGUNDO CASO: ROTACION HACIA LA IZQUIERDA

Se inserta: 3
1 1 1 -2 1

0 2 2 -1 2

3 0 3

Se insertar el Nodo con elemento 3 y cambia el factor de equilibrio. En el nodo 1 se ha roto el


criterio de equilibrio. La reestructuración del árbol consiste en una rotación izquierda.

1 3
TERCER CASO: ROTACION IZQUIERDA - DERECHA

Se inserta: 2

1 3 1 2 3

0 1 2 -1 1

3 0 2

Se insertar el Nodo con elemento 2, cambia el factor de equilibrio. En el nodo 3 se ha roto el


criterio de equilibrio. La reestructuración del árbol consiste en una rotación izquierda - derecha.

1 3
CUARTO CASO: ROTACION DERECHA - IZQUIERDA

Se inserta: 2
1 1 1 2 1

0 3 2 1 3

3 0 2

Se insertar el Nodo con elemento 2, cambia el factor de equilibrio. En el nodo 1 se ha roto el


criterio de equilibrio. La reestructuración del árbol consiste en una rotación derecha - izquierda.

1 3
EJEMPLO DE BALANCEO EN ÁRBOLES BINARIOS
Dada la inserción de los elementos: 2 5 4 3 1 9 8 6 7
Realizar el balanceo del árbol

2 2 Balanceo 4 4

5 2 5 2 5
5

4 3

4 4 4
Balanceo
2 5 2 5 2 8

1 3 9 1 3 9 1 3 5 9

8
4 4

2 8 2 8

1 3 5 9 1 3 5 9

6 6

2 8
Balanceo

1 3 6 9

5 7
EJEMPLO DE BALANCEO EN ÁRBOLES M-VIAS

Insertar 5 5 Insertar 8 5 8

5 8 20

Insertar 20 8 Insertar 9 8

5 20 5 9 20

9 15 20
Insertar 15 8 15

5 9 20
8 15
Insertar 10

5 9 10 20

10
9 10 13

Insertar 13 8 15

5 9 13 20
EJEMPLO DE BALANCEO DE ÁRBOLES M-VIAS
Dada la inserción de los elementos: 30 20 40 10 25 15 35 45

Insertar 30 30 Insertar 20 20 30

20 30 40

Insertar 40 30 Insertar 10 30

20 40 10 20 40

10 20 25
Insertar 25 20 30

10 25 40
Insertar 15 20 30

10 15 25 40

20 30
Insertar 35
10 15 25 35 40

30
35 40 45
Insertar 45 20 40

10 15 25 35 45

También podría gustarte