Você está na página 1de 14

AULA e11

Algoritmos e Estruturas de Dados I

Árvores AVL – Inserção


(rotação LR)

Prof. Luciano Antonio Digiampietri


Inserções em Árvore AVL
Posição relativa de u em relação à p e de v em relação à u:

Esquerda- Esquerda- Direita- Direita-


Direita Esquerda Direita Esquerda
LR LL RR RL
30 30 10 10
L L R R
10 20 20 30
R L R L
20 10 30 20
Inserções em Árvore AVL
LR LL RR RL
30 30 10 10
L L R R
10 20 20 30
R L R L
20 10 30 20
20

10 30
Rotação LR
p
-2

u A
1

B v
?
-1/0/1
C D
Rotação LR
p

u A v

B v u p

C D
Rotação LR
p

u A v v

B v u p u p

C D B C D A
Rotação LR – altura dos nós

p h

-2

h-1 u A h-3
1

h-3 v h-2
B
?
-1/0/1
C D
h-3 ou h-4 ou
h-4 h-3
Rotação LR – altura dos nós

p h

-2

h-1 u A h-3 v
1

h-3 v h-2 u p
B
?
-1/0/1
C D B C D A
h-3 ou h-4 ou h-3 h-3 ou h-4 h-3
h-4 h-3 h-4 ou h-3
Rotação LR – altura dos nós

p h

-2

h-1 u A h-3 v h-1


1

h-3 v h-2 h-2 u p h-2


B
?
-1/0/1
C D B C D A
h-3 ou h-4 ou h-3 h-3 ou h-4 h-3
h-4 h-3 h-4 ou h-3
Rotação LR – balanceamento

p h

-2

h-1 u A h-3
1

h-3 v h-2
B
?
-1/0/1
C D
h-3 ou h-4 ou
h-4 h-3
Rotação LR – balanceamento

p h

-2

h-1 u A h-3 v h-1

h-3 v h-2 h-2 u p h-2


B
?
-1/0/1
C D B C D A
h-3 ou h-4 ou h-3 h-3 ou h-4 h-3
h-4 h-3 h-4 ou h-3
Rotação LR – balanceamento

p h

-2

h-1 u A h-3 v h-1

1 0

h-3 v h-2 h-2 u p h-2


B
? 0/-1 0/1
-1/0/1
C D B C D A
h-3 ou h-4 ou h-3 h-3 ou h-4 h-3
h-4 h-3 h-4 ou h-3
Rotação LR – código
PONT rotacaoL(PONT p){
PONT u, v;
u = p->esq;
if (u->bal == 1) { // LR
v = u->dir;
u->dir = v->esq;
v->esq = u;
p->esq = v->dir;
v->dir = p;
if(v->bal == -1) p->bal = 1;
else p->bal = 0;
if(v->bal == 1) u->bal = -1;
else u->bal = 0;
v->bal = 0;
return v;
}
AULA e11
Algoritmos e Estruturas de Dados I

Árvores AVL – Inserção


(rotação LR)

Prof. Luciano Antonio Digiampietri

Você também pode gostar