aula 18 – Árvores adelson-velskii e...

99
1 Aula 18 – Árvores Adelson-Velskii e Landis Algoritmos e Estruturas de Dados I Prof. Jesús P. Mena-Chalco [email protected] Q1-2017

Upload: truongnhan

Post on 29-Mar-2018

217 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

1

Aula 18 – Árvores Adelson-Velskii e Landis

Algoritmos e Estruturas de Dados I

Prof. Jesús P. [email protected]

Q1-2017

Page 2: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

2

AVL

G.M. Adelson-Velskii y E.M. Landis“An algorithm for the organization of information”. Proceedings of the USSR Academy of Sciences, vol. 146, pp. 263–266, 1962

AVL foi a primeira estrutura (conhecida) de árvore de altura balanceada/equilibrada.

Page 3: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

3

AVL

Georgy M. Adelson-VelskyRussia

(1922-2014/abril/26)

Evgenii Mikhailovich Landis Ucrania

(1921-1997)

Page 4: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

5

Árvores AVL

Uma árvore AVL é definida como:Uma árvore vazia é uma árvore AVL.Sendo T uma ABB, com subárvores esquerda (L) edireita (R) , T será uma árvore AVL contanto que:

L e R são árvores AVL

A definição de uma ABB de altura equilibrada (AVL) requer que cada subárvore seja também de altura equilibrada.

Page 5: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

6

Fator de balanceamento

O fator de balanceamento/equilibrio de um nó T em uma ABB é definido como:

Para qualquer nó T em uma árvore AVL, o fator de balanceamento assume o valor: +1, 0, -1.

Page 6: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

7

RR

Page 7: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

8

LL

Page 8: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

9

LR

Page 9: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

10

LR (outro exemplo)

Page 10: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

11

RL

Page 11: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

12

Rotações

Page 12: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

13

Rotações

O processo de rebalanceamento é conduzido utilizando 4 tipos de rotações

LLRRLRRL

Suponha que o novo nó inserido é Y:As rotações são caracterizadas pelo ancestral A (com fator de balanceamento +2 ou -2) mais próximo do nó Y.

Page 13: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

14

Rotações

LL: Y inserido na subárvore esquerda da subárvore esquerda de ALR: Y inserido na subárvore direita da subárvore esquerda de ARR: Y inserido na subárvore direita da subárvore direita de ARL: Y inserido na subárvore esquerda da subárvore direita de A

Seja B o filho de A no qual ocorreu a inserção de YLL (A = +2; B = +1)LR (A = +2; B = -1)RR (A = -2; B = -1)RL (A = -2; B = +1)

A

B

Y

Page 14: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

15

Rotação LL

Page 15: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

16

Rotação LL

Page 16: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

17

Rotação LL

Page 17: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

18

Rotação LL

Page 18: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

19

Rotação LL

Page 19: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

20

Rotação LL

Page 20: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

21

Rotação LL

Page 21: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

22

Rotação LL

Page 22: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

23

Rotação RR

Page 23: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

24

Rotação RR

Page 24: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

25

Rotação RR

Page 25: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

26

Rotação RR

Page 26: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

27

Rotação RR

Page 27: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

28

Rotação RR

Page 28: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

29

Rotação RR

Page 29: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

30

Rotação RR

Page 30: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

31

Rotação LR (a)

Page 31: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

32

Rotação LR (b)

Page 32: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

33

Rotação LR (b)

Page 33: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

34

Rotação LR (b)

Page 34: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

35

Rotação LR (c)

Page 35: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

36

Rotação LR (c)

Page 36: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

37

Rotação LR (c)

Page 37: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

38

Rotação LR

Page 38: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

39

Rotação LR

Page 39: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

40

Rotação LR

Page 40: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

41

Rotação LR

Page 41: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

42

Rotação LR

Page 42: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

43

Rotação LR

Page 43: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

44

Rotação LR

Page 44: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

45

Rotação LR

Page 45: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

46

Rotação RL (a)

Page 46: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

47

Rotação RL (b)

Page 47: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

48

Rotação RL (b)

Page 48: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

49

Rotação RL (b)

Page 49: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

50

Rotação RL (c)

Page 50: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

52

Atividade

Suponha que serão realizadas as seguintes inserções de chaves na árvore AVL ao lado:

72136

(a) Apresente a árvore AVL resultante (1 árvore)(b) Indique o tipo de rotações consideradas em cada inserção

4

5

Page 51: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

53

Atividade em aula

Operações

7 : RR2 : --1 : LL3 : LR6 : RL

Page 52: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

54

Provamos que AVL é uma árvores balanceada?

Page 53: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

55

Balanceamento de árvores AVL

Uma árvore AVL de altura h é balanceada se h = O(log(n))

Outra forma de pensar: Dada uma árvore AVL de altura h, qual seria o valor mínimo possivel para n?

Page 54: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

56

Balanceamento de árvores AVL

Uma árvore AVL de altura h é balanceada se h = O(log(n))

Outra forma de pensar: Dada uma árvore AVL de altura h, qual seria o valor mínimo possivel para n?

h-1

h-2

Page 55: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

57

Balanceamento de árvores AVL

Seja Th uma árvore AVL com altura h e número mínimo de nós.

T1 T2 T3 T4

Nesta definição → h=4

Page 56: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

58

Balanceamento de árvores AVL

Basta calcular um limite inferior do número de nós de Th.Seja |Th| o número de nós de Th.

Page 57: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

59

Analogia com a sequência de Fibonacci

Page 58: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

60

AVL

Como Temos

Page 59: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

61

AVL

AVL é uma árvore balanceada!

Como Temos

Page 60: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

62

AVL

●Um teorema provado por Adelson-Velskii e Landis garante que a árvore balanceada nunca será 45% mais alta que a correspondente árvore perfeitamente balanceada, independentemente do número de nós existentes.

Page 61: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

63

AVL

Page 62: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

64

Implementações

Árvores balanceadas são muito utilizadas em problemas reais:

JAVA: TreeMap, TreeSet.C++: Map, Set do STL.

Custo de busca, inserção, remoção da árvore AVL: O(log n)

Page 63: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

65

Considerações de avaliações empíricas

Há um custo adicional para manter uma árvore balanceada, mesmo assim garantindo O(log2 n), mesmo no pior caso, para todas as operações.

Em testes empíricos:Uma rotação é necessária a cada duas inserções.Uma rotação é necessária a cada cinco remoções.

A remoção em árvore balanceada é tão simples (ou tão complexa) quanto a inserção.

Page 64: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

66

Sobre as rotações

(simplificando um pouco...)

Page 65: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

67

Rotação: Esquerda & Direita

Varredura e-r-d: T1, X, T2, Y, T3 Varredura e-r-d: T1, X, T2, Y, T3

X

YT1

T3T2

Y

T3X

T2T1

Page 66: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

68

Rotação: Esquerda & Direita

X

YT1

T3T2

Y

T3X

T2T1

Varredura e-r-d: T1, X, T2, Y, T3 Varredura e-r-d: T1, X, T2, Y, T3

R. a direita(y)

R. a esquerda(x)

Page 67: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

69

Rotação: LL

p

T3f

T2T1

a

T4 p

f

T2T1

a

T4T3

R. a direita(a)

Page 68: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

70

p

T3

Rotação: RR

a

T1

f

T4

p

a

T2T1

f

T4T3

R. a esquerda(a)T2

Page 69: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

71

Rotação: LR

p

fT1

a

T4f

p

T2T1

a

T4T3T3T2

Page 70: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

72

p

T2T1

Rotação: LR

p

fT1

a

T4f

p

T2T1

a

T4T3

R. a esquerda(p)

T3T2

f

a

T4

T3

R. a direita(a)

Page 71: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

73

Rotação: RL

T1

f

a

pf

a

T2T1

p

T4T3T3T2

T4

Page 72: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

74

Rotação: RL

T1

f

a

pf

a

T2T1

p

T4T3

R. a direita(p)

T3T2

R. a esquerda(a)

T4

T1

T2

a

f

p

T4T3

Page 73: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

75

Como determinar o tipo de rotação?

Page 74: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

76

LL

LR

Page 75: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

77

RR

RL

Page 76: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

78

Remoção em árvores AVL

Page 77: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

79

Remoção

A remoção em árvores AVL é similar à remoção em umaABB.

Todavia, é preciso verificar o balanceamento e, senecessário, aplicar algumas das rotações.

Page 78: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

80

Remoção

Page 79: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

81

Remoção

Page 80: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

82

Remoção

Page 81: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

83

Remoção

Page 82: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

84

Remoção

Page 83: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

85

Remoção

Page 84: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

86

Remoção

Page 85: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

87

Remoção

Page 86: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

88

Remoção

Page 87: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

89

Remoção

Page 88: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

90

Remoção

Page 89: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

91

Remoção

Page 90: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

92

Remoção

Page 91: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

93

Remoção

Page 92: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

94

Sobre os slides

Slides baseados em:

Szwarcfiter, J.L. & Markezon, L. Estruturas de Dados e seus Algoritmos, 3a edição, LTC, 2010.

Horowitz, E. & Sahni, S.; Fundamentos de Estruturas de Dados, Editora Campus, 1984.

Wirth, N.; Algoritmos e Estruturas de Dados, Prentice/Hall do Brasil, 1989.

Material de aula do Prof. José Augusto Baranauskas (USP/Riberão Preto)

Page 93: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

95

Árvores de Busca Binária

Por que ABBs?São estruturas eficientes de busca (se a árvore estiver balanceada).Permitem minimizar o tempo de acesso no pior caso.

Complexidade das operações de busca, inserção, remoção:

Se balanceada → O(lg (n))

Senão → O(n)

Page 94: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

96

Árvores balanceadas

As seguintes árvores são as ditas balanceadas – com altura O(lg(n)):

AVLRubro-negras / vermelho-preto / red-black treeB

As árvores Rubro-negrasapresentam uma alturade, no máximo, igual a2 lg(n+1).

Page 95: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

97

Árvores balanceadas

Page 96: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

98

Árvore Rubro-Negra

Rudolf BayerComputer scientist

Page 97: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

99

Árvore Rubro-Negra

Somente em 1978, Leo Guibas e Robert Sedgewick, atribuiram a 'coloração' na árvore.

A cor "vermelho" foi escolhida porque era a mais bonita produzida pela impressora laser a cores disponíveis para os autores, enquanto trabalhavam na Xerox PARC.

Page 98: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

100

Árvore Rubro-Negra

As ARN possuem um bit extra para armazenar a cor de cada nó, que pode ser VERMELHO ou PRETO.

Page 99: Aula 18 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mcta001-1… ·  · 2017-04-2058 Balanceamento de árvores AVL ... 64 Implementações

101

Árvore Rubro-Negra