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

Transcript of Aula 18 – Árvores Adelson-Velskii e...

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