Arboles AVL

July 2, 2018 | Author: alejandrogrz81277 | Category: Mathematics, Computing And Information Technology, Science, It/Computer Sciences, Engineering
Share Embed Donate


Short Description

Descripción: ARBOLES AVL,ROTACIONES...

Description

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

ARBOLES AVL Definición. Es un árbol binario de búsqueda binaria en el cual las alturas de los subarboles izquierdo y derecho de la raíz a lo sumo en 1 y en el cual esos subarboles son, también aquí, arboles AVL .a cada nodo de un árbol AVL se le asocia un factor de Balance El cual es izquierdo alto, alto , igual o derecho alto, respectivamente, según que el subárbol izquierdo tenga una altura mayor, igual o menor que la del subárbol derecho La denominación de árbol AVL viene dada por los creadores de tal estructura (Adelson-Velskii y Landis). Recordamos que un árbol binario de búsqueda  es un árbol binario en el cual cada nodo cumple con que todos los nodos de su subárbol izquierdo son menores que la raíz y todos los nodos del subárbol derecho son mayores que la raíz. Recordamos también que el tiempo de las operaciones sobre un árbol binario de búsqueda son O(log n) promedio, pero el peor caso es O(n), donde n es el número de elementos. La propiedad de equilibrio  que debe cumplir un árbol para ser AVL asegura que la profundidad del árbol sea O(log(n)), por lo que las operaciones sobre estas estructuras no deberán recorrer mucho para hallar el elemento deseado. Como se verá, el tiempo de ejecución de las operaciones sobre estos árboles es, a lo sumo O(log(n)) en el peor caso, donde n es la cantidad de elementos del árbol. Sin embargo, y como era de esperarse, esta misma propiedad de equilibrio de los árboles AVL implica una dificultad  a la hora de insertar o eliminar elementos: estas operaciones pueden no conservar dicha propiedad. Árboles AVL /

--

--

7

--

5

--

4

8

6

Figure 1. Árbol AVL de enteros

A modo de ejemplificar esta dificultad, supongamos que al árbol AVL de enteros de Figure 1 le queremos agregar el entero 3. Si lo hacemos con el procedimiento normal de inserción de árboles binarios de búsqueda el resultado sería el árbol de Figure 2 el cual ya no cumple con la condición de equilibrio de los árboles AVL dado que la altura del subárbol izquierdo es 3 y la del subárbol derecho es 1. /

/

/

/

4

---

5

---

7

8

6

3

Figure 2. Árbol que no cumple con la condición de equilibrio de los árboles AVL. 1

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Inserción de un Nodo Podemos insertar un nuevo nodo en un Árbol AVL utilizando el algoritmo usual de Árbol Binario, comparando las llaves del nuevo código con la raíz e insertando insertando el nuevo nodo en el subárbol izquierdo o derecho según corresponda. A menudo resulta que puede insertarse el nuevo nodo sin cambiar la altura del subárbol; de ser así ni la altura ni el balance del nuevo árbol se modificara. Aun cuando la altura del subárbol aumentara, puede ser el subárbol más corto el que haya crecido, de manera que cambiara el factor de Balance Balance de la raíz. El El único caso que puede ocasionar problemas es cuando se inserta un nuevo nodo en el subárbol que es, en rigor, mas alto que el otro y cuando aumenta la altura del árbol. Ello hara que un subarbol tenga una altura 2 veces mayor que el otro; en cambio la condición de arboles AVL es que la diferencia de altura nunca sea mayor a 1.

-

-

\

K

\

E

\

T

\

--

-

-

-

-

-

-

/ --

-

-

-

E

/

/

--

-

-

\

\

E

P

/

--

--

V

--

/

--

--

V

/

/

--

ROTACIONES DE ARBOLES Ahora abordaremos el caso en que un nuevo nodo ha sido insertado en el sub árbol más alto de la raíz y su altura ha aumentado ; en consecuencia , ahora un subárbol tiene una altura mayor a 2 que el otro; y el árbol árbol ya no satisface los requisitos requisitos de los subarboles AVL . Se reconstruirá parte de el para recuperar el balanceo 2

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Hay cuatro tipos de rotaciones rotaciones Rotaciones Simples

Rotaciones Compuestas

El tipo de rotación a aplicar dependerá, según el factor de balance Caso 1: Derecho alto: la acción necesaria en este caso recibe el nombre de Rotación Izquierda ; hemos girado el nodo “X” hacia arriba a la raíz dejando caer el nodo “R” en el sub árbol izquierdo de “X”; el subárbol T2 de nodos con llaves entre “R” y “X” Ahora se convierte convierte en el subárbol derecho de “R” y no en el subárbol izquierdo de “X”

--

\

\

--

X T3

T1 T2

h

T2 T3

T1

= 3

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Caso 2: Izquierdo Alto : Cuando el factor de balance de X es izquierdo alto. Es preciso mover dos niveles , hacia el nodo “W” que implanta el sub árbol izquierdo de “X” para encontrar la nueva raíz. Este proceso se muestra en la siguiente figura y recibe el nombre de rotación doble , porque la transformación se logra en dos pasos, primero girando el subárbol de raiz “X” hacia la derecha(de modo que “W” se convierta en su raiz) y luego girando el subárbol de raíz “ T” hacia la izquierda (moviendo W hacia arriba para que se transforme en la nueva raiz). En este segundo caso los factores de balance para T y X dependen del factor anterior de balance para W.

Doble Rotación a la derecha \ -/

X --

--

h

W

--

T1

T4

T2

h T2

T3

T4

T1

T3

h Altura Total=h+2 = EJEMPLOS: Rotación Simple :

4

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Rotación Doble:

ELIMINACION DE UN NODO: Para suprimir un nodo “x” en un árbol AVL se requieren las mismas ideas básicas básicas

de eliminación de

Arboles Binarios seguido de un Balanceo Balanceo del Árbol (entre rotación simple y dobles)

Ejemplo: I Inicial: /

\

/

/

---

\

E

---

C

\

B

/

---

\

D

A

M

G

\

H

---

\

J

I

---

L

\

N

---

K

P

O

---

S

R

/

---

T

F

5

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Eliminar P:

/

\

/

/

--

\

E

--

C

\

B

D

\

H

/

G

--

A

--

M

\

J

\

--

I

\

N

--

K

P

--

O

S

R

/

--

L

T

F

Ajustar el balance : de las dos posibles alternativas “O” y “R” de reemplazar a “P” se escogió a la de la rama izquierda “O” /

\

/

/

--

--

\

A

--

\

E

C

B

M

D

\

H

/

G

--

\

J

\

I

O

\

--

K

--

/

U

--

L /

F

R

M

Girar a la izquierda

---

--

--

N

O

--

R

S

/

U

--

T 6

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Giro doble alrededor de “M” /

\

/

/

--

E

--

C

\

B

A

--

M

D

\

H

/

G

--

J

\

K

--

I

L

F

Giro a la Derecha /

/

/

/

/

--

B

A

--

J

E

\

/

C

/

D

--

K

H

G

M

--

--

L

I

F

7

ULADECH -Matemática Discreta

Ing. Gallo Rodríguez Walter

Giro hacia la izquierda: --

--

/

/

--

B

A

\

E

/

C

--

J

/

D

--

H

G

F

\

--

M

---

K

I

--

--

L --

N

O

--

R

S

/

U

--

T

EJERCICIOS ÁRBOLES AVL 1. Dada la secuencia secuencia de claves enteras 20, 10, 30, 5, 25, 12, 3, 35, 22, 11, 6, 6, 2. Representa gráficamente el árbol AVL correspondiente e indica en qué momento se efectuó una rotación. 2. Dada la secuencia secuencia de claves enteras: 100, 29, 71, 82, 48, 48, 39, 101, 22, 46, 17, 3,20, 25, 10. Representa gráficamente el árbol AVL Correspondiente. 3. Determina cuáles de los siguientes árboles binarios de búsqueda son AVL. En el caso de que no lo sean, encuentra todos los nodos que violen los requerimientos de AVL.

4. Inserta las claves en el orden indicado a fin de incorporarlas incorporarlas a un árbol AVL. a) 10, 100, 20, 80, 40, 70 b) 5, 10, 20, 30, 40, 50, 60 c) 50, 100, 40, 5, 110, 20, 60, 65 d) 10, 100, 20, 90, 30, 80, 40, 70, 50, 60 e) 100, 90, 80, 70, 60, 50, 40, 30, 20, 10 8

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF