100
1 Aula 10 – Árvores Adelson-Velskii e Landis MC3305 Algoritmos e Estruturas de Dados II Prof. Jesús P. Mena-Chalco [email protected] 2Q-2014

Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

  • Upload
    dangdat

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

1

Aula 10 – Árvores Adelson-Velskii e Landis

MC3305Algoritmos e Estruturas de Dados II

Prof. Jesús P. [email protected]

2Q-2014

Page 2: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

2

Árvores balanceadas

Page 3: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

3

Árvores balanceadas

As ABB permitem buscar de forma eficiente um elemento dada uma chave.

Deseja-se que o custo de acesso tenha a ordem de grandeza de uma árvore ótima → O(lg(n))

Este custo deve-se manter ao longo da utilização da estrutura (inclusive após inserções/remoções).O custo de ter a estrutura balanceada deve estar na, idealmente, mesma ordem de grandeza.

Uma árvore binária é balanceada (ou equilibrada) se,em cada um de seus nós, as subárvores esquerda e direita

tiverem aproximadamente a mesma altura.

Page 4: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

4

Árvores balanceadas

Exemplo ruim para o restabablecimento de árvores completas

Fonte: SZWARCFITER, J. L.; MARKEZON, L. Estruturas de Dados e seus Algoritmos, 3a edição, LTC, 2010.

Para obter esta árvore é necessário percorrer toda a árvore, O(n)

Page 5: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

5

Árvores balanceadas: completas e AVLs

Page 6: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

6

AVL

Georgy M. Adelson-VelskyRussia

(1922-2014/abril/26)

Evgenii Mikhailovich Landis Ucrania

(1921-1997)

Page 7: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

7

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 8: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

8

Árvores AVL

Devido ao balanceamento da altura da árvore, as operações de:

BuscaInserçãoRemoção

em uma árvore com n elementos podem ser efetuadas em mesmo no pior caso.

Page 9: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

9

Árvores AVL

Devido ao balanceamento da altura da árvore, as operações de:

BuscaInserçãoRemoção

em uma árvore com n elementos podem ser efetuadas em mesmo no pior caso.

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 10: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

10

Árvores AVL

Uma árvore AVL é definida como:Uma árvore vazia é uma árvore AVL.

Page 11: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

11

Á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 12: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

12

Árvores AVL

Page 13: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

13

Fator de balanceamento

Page 14: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

14

Fator de balanceamento

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

Page 15: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

15

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.

O fator de balanceamento de uma folha?

Page 16: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

16

Fator de balanceamento

Page 17: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

17

Fator de balanceamento

Fator=0Alturas das subárvores

esquerda e direitasão iguais

Page 18: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

18

Fator de balanceamento

Fator=+1Alturas da subárvore

esquerda é maior

Page 19: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

19

Fator de balanceamento

Fator=-1Alturas da subárvore

esquerda é menor

Page 20: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

20

Exemplo: Inserção de 'Maio'

Page 21: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

21

Exemplo: Inserção de 'Março'

Page 22: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

22

Exemplo: Inserção de 'Março'

Page 23: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

23

Exemplo: Inserção de 'Novembro'

Page 24: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

24

Exemplo: Inserção de 'Novembro'

Page 25: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

25

Exemplo: Inserção de 'Novembro'

Page 26: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

26

Exemplo: Inserção de 'Agosto'

Page 27: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

27

Exemplo: Inserção de 'Agosto'

Page 28: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

28

Exemplo: Inserção de 'Abril'

Page 29: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

29

Exemplo: Inserção de 'Abril'

Page 30: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

30

Exemplo: Inserção de 'Abril'

Page 31: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

31

Exemplo: Inserção de 'Janeiro'

Page 32: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

32

Exemplo: Inserção de 'Janeiro'

Page 33: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

33

Exemplo: Inserção de 'Janeiro'

Page 34: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

34

Exemplo: Inserção de 'Dezembro'

Page 35: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

35

Exemplo: Inserção de 'Dezembro'

Page 36: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

36

Exemplo: Inserção de 'Julho'

Page 37: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

37

Exemplo: Inserção de 'Julho'

Page 38: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

38

Exemplo: Inserção de 'Fevereiro'

Page 39: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

39

Exemplo: Inserção de 'Fevereiro'

Page 40: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

40

Exemplo: Inserção de 'Fevereiro'

Page 41: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

41

Exemplo: Inserção de 'Junho'

Page 42: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

42

Exemplo: Inserção de 'Junho'

Page 43: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

43

Exemplo: Inserção de 'Outubro'

Page 44: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

44

Exemplo: Inserção de 'Outubro'

Page 45: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

45

Exemplo: Inserção de 'Outubro'

Page 46: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

46

Exemplo: Inserção de 'Setembro'

Page 47: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

47

Exemplo: Inserção de 'Setembro'

Page 48: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

48

Rotações

Page 49: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

49

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 50: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

50

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 51: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

51

Rotação LL

Page 52: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

52

Rotação LL

Page 53: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

53

Rotação LL

Page 54: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

54

Rotação LL

Page 55: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

55

Rotação LL

Page 56: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

56

Rotação LL

Page 57: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

57

Rotação LL

Page 58: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

58

Rotação LL

Page 59: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

59

Rotação RR

Page 60: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

60

Rotação RR

Page 61: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

61

Rotação RR

Page 62: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

62

Rotação RR

Page 63: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

63

Rotação RR

Page 64: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

64

Rotação RR

Page 65: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

65

Rotação RR

Page 66: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

66

Rotação RR

Page 67: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

67

Rotação LR (a)

Page 68: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

68

Rotação LR (b)

Page 69: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

69

Rotação LR (b)

Page 70: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

70

Rotação LR (b)

Page 71: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

71

Rotação LR (c)

Page 72: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

72

Rotação LR (c)

Page 73: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

73

Rotação LR (c)

Page 74: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

74

Rotação LR

Page 75: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

75

Rotação LR

Page 76: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

76

Rotação LR

Page 77: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

77

Rotação LR

Page 78: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

78

Rotação LR

Page 79: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

79

Rotação LR

Page 80: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

80

Rotação LR

Page 81: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

81

Rotação LR

Page 82: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

82

Rotação RL (a)

Page 83: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

83

Rotação RL (b)

Page 84: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

84

Rotação RL (b)

Page 85: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

85

Rotação RL (b)

Page 86: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

86

Rotação RL (c)

Page 87: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

87

Ferramenta de visualização: AVL

http://www.qmatica.com/DataStructures/Trees/AVL/AVLTree.html

-1*( )

Page 88: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

88

Atividade em aula

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 89: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

89

Atividade em aula

Operações

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

Page 90: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

90

AVL é uma árvores balanceada?

Page 91: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

91

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 92: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

92

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 93: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

93

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 94: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

94

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 95: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

95

Analogia com a sequência de Fibonacci

Page 96: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

96

AVL

AVL é uma árvore balanceada!

Como Temos

Page 97: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

97

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 98: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

98

AVL

Page 99: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

99

Para finalizar

Á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 100: Aula 10 – Árvores Adelson-Velskii e Landisprofessor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-10.pdf · Devido ao balanceamento da altura da árvore, as operações

100

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)