Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O...

180
Algoritmos e Estruturas de Dados I Árvores AVL Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info

Transcript of Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O...

Page 1: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Algoritmos e Estruturas de Dados I

Árvores AVLProf. Tiago Eugenio de Melo

[email protected]

www.tiagodemelo.info

Page 2: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Observações

● O conteúdo dessa aula é parcialmente proveniente do Capítulo 14 do livro “Data Structure and Algorithms Using Python”.

● As palavras com a fonte Courier indicam uma palavra-reservada da linguagem de programação.

2 / 40

Page 3: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Árvores AVL

3 / 40

Page 4: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

4 / 40

Page 5: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Árvore binária de busca (ABB) é uma estrutura de dados apropriada para armazenamento e pesquisa (busca) de dados.

4 / 40

Page 6: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Árvore binária de busca (ABB) é uma estrutura de dados apropriada para armazenamento e pesquisa (busca) de dados.

● A eficiência das operações em ABB depende bastante da altura da árvore.

4 / 40

Page 7: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Árvore binária de busca (ABB) é uma estrutura de dados apropriada para armazenamento e pesquisa (busca) de dados.

● A eficiência das operações em ABB depende bastante da altura da árvore.

● No melhor caso, uma árvore binária de busca terá altura de log n.

4 / 40

Page 8: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Árvore binária de busca (ABB) é uma estrutura de dados apropriada para armazenamento e pesquisa (busca) de dados.

● A eficiência das operações em ABB depende bastante da altura da árvore.

● No melhor caso, uma árvore binária de busca terá altura de log n.

● No pior caso, a altura da árvore será n.

4 / 40

Page 9: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Árvore binária de busca (ABB) é uma estrutura de dados apropriada para armazenamento e pesquisa (busca) de dados.

● A eficiência das operações em ABB depende bastante da altura da árvore.

● No melhor caso, uma árvore binária de busca terá altura de log n.

● No pior caso, a altura da árvore será n.● Assim, devemos buscar construir uma ABB que tenha

altura de log n.

4 / 40

Page 10: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

5 / 40

Page 11: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?

5 / 40

Page 12: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?– Se conhecessemos a lista completa de chaves.

5 / 40

Page 13: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?– Se conhecessemos a lista completa de chaves.

● Bastaria deixar a lista ordenada e usar a técnica de busca binária.

5 / 40

Page 14: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?– Se conhecessemos a lista completa de chaves.

● Bastaria deixar a lista ordenada e usar a técnica de busca binária.

● O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não se aplica a muitos problemas reais.

5 / 40

Page 15: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?– Se conhecessemos a lista completa de chaves.

● Bastaria deixar a lista ordenada e usar a técnica de busca binária.

● O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não se aplica a muitos problemas reais.

– Nós poderíamos reconstruir a árvore a cada nó que seja adicionado ou removido da árvore.

5 / 40

Page 16: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?– Se conhecessemos a lista completa de chaves.

● Bastaria deixar a lista ordenada e usar a técnica de busca binária.

● O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não se aplica a muitos problemas reais.

– Nós poderíamos reconstruir a árvore a cada nó que seja adicionado ou removido da árvore.

● Mas o tempo para fazer isso torna inviável essa alternativa.

5 / 40

Page 17: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Introdução

● Como construir uma ABB com altura log n?– Se conhecessemos a lista completa de chaves.

● Bastaria deixar a lista ordenada e usar a técnica de busca binária.

● O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não se aplica a muitos problemas reais.

– Nós poderíamos reconstruir a árvore a cada nó que seja adicionado ou removido da árvore.

● Mas o tempo para fazer isso torna inviável essa alternativa.

– O que nós precisamos fazer é manter a árvore com uma altura ideal à medida que novos elementos sejam adicionados ou antigos sejam removidos. 5 / 40

Page 18: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

6 / 40

Page 19: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● A árvore AVL foi inventada por G. M. Adel'son-Velskii e Y. M. Landis em 1962.

6 / 40

Page 20: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● A árvore AVL foi inventada por G. M. Adel'son-Velskii e Y. M. Landis em 1962.

● O objetivo dessa árvore é garantir que a altura da árvore esteja sempre balanceada.

6 / 40

Page 21: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

7 / 40

Page 22: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Uma ABB é AVL se as alturas das subárvores a esquerda e a direita para cada um dos nós variem apenas de 1.

7 / 40

Page 23: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Uma ABB é AVL se as alturas das subárvores a esquerda e a direita para cada um dos nós variem apenas de 1.

● Exemplos de árvore AVL:

7 / 40

Page 24: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Uma ABB é AVL se as alturas das subárvores a esquerda e a direita para cada um dos nós variem apenas de 1.

● Exemplos de árvore AVL:

7 / 40

Page 25: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Uma ABB é AVL se as alturas das subárvores a esquerda e a direita para cada um dos nós variem apenas de 1.

● Exemplos de árvore AVL:

7 / 40

Page 26: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Exemplo de árvore que não é AVL:

8 / 40

Page 27: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Exemplo de árvore que não é AVL:

8 / 40

Page 28: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Exemplo de árvore que não é AVL:

8 / 40

Page 29: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Exemplo de árvore que não é AVL:

ALTURA = 38 / 40

Page 30: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Exemplo de árvore que não é AVL:

ALTURA = 38 / 40

Page 31: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● Exemplo de árvore que não é AVL:

ALTURA = 3

ALTURA = 1

8 / 40

Page 32: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

9 / 40

Page 33: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● As operações de busca e de travessia são iguais nas árvores binárias de busca e nas AVL.

9 / 40

Page 34: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

AVL

● As operações de busca e de travessia são iguais nas árvores binárias de busca e nas AVL.

● As operações de inserção e remoção devem ser modificadas para manter a propriedade de balanceamento das AVL.

9 / 40

Page 35: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

10 / 40

Page 36: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● A inserção na AVL inicia com o mesmo procedimento usado nas ABB.

10 / 40

Page 37: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● A inserção na AVL inicia com o mesmo procedimento usado nas ABB.

● Nós pesquisamos por uma chave na árvore e adicionamos o novo elemento onde ocorre a “falha” na busca.

10 / 40

Page 38: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● A inserção na AVL inicia com o mesmo procedimento usado nas ABB.

● Nós pesquisamos por uma chave na árvore e adicionamos o novo elemento onde ocorre a “falha” na busca.

● Quando um novo elemento é inserido na AVL, a propriedade de balanceamento deve ser mantida.

10 / 40

Page 39: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● A inserção na AVL inicia com o mesmo procedimento usado nas ABB.

● Nós pesquisamos por uma chave na árvore e adicionamos o novo elemento onde ocorre a “falha” na busca.

● Quando um novo elemento é inserido na AVL, a propriedade de balanceamento deve ser mantida.

● Se a inserção de um novo elemento causar um desbalanceamento, então a árvore deverá ser rebalanceada.

10 / 40

Page 40: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

11 / 40

Page 41: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 120 na árvore abaixo:

11 / 40

Page 42: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 120 na árvore abaixo:

60

100

80

25

17 35

30 11 / 40

Page 43: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 120 na árvore abaixo:

60

100

80

25

17 35

30 11 / 40

Page 44: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 120 na árvore abaixo:

120

60

100

80

25

17 35

30 11 / 40

Page 45: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 120 na árvore abaixo:

120

60

100

80

25

17 35

30

120

11 / 40

Page 46: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 120 na árvore abaixo:

120

60

100

80

25

17 35

30

120

A árvore continua balanceada?

11 / 40

Page 47: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

12 / 40

Page 48: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 28 na árvore abaixo:

12 / 40

Page 49: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 28 na árvore abaixo:

120

60

100

80

25

17 35

30

12 / 40

Page 50: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 28 na árvore abaixo:

120

60

100

80

25

17 35

30

12 / 40

Page 51: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 28 na árvore abaixo:

120

60

100

80

25

17 35

30

28 12 / 40

Page 52: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Considere que vamos inserir o elemento 28 na árvore abaixo:

120

60

100

80

25

17 35

30

28

A árvore continua balanceada?

12 / 40

Page 53: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

13 / 40

Page 54: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

13 / 40

Page 55: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28 13 / 40

Page 56: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

13 / 40

Page 57: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

13 / 40

Page 58: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

13 / 40

Page 59: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

25

13 / 40

Page 60: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

13 / 40

Page 61: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

13 / 40

Page 62: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

13 / 40

Page 63: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

13 / 40

Page 64: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

13 / 40

Page 65: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

17

13 / 40

Page 66: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

10025

17 30

13 / 40

Page 67: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

60

100

80

25

17 30

13 / 40

Page 68: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

120

60

100

80

25

17 30

13 / 40

Page 69: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

120

60

100

80

25

17 30

13 / 40

Page 70: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

120

60

100

80

25

17 30

13 / 40

Page 71: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

120

60

100

80

25

17 30

28

13 / 40

Page 72: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Como a árvore ficaria balanceada?

120

60

100

80

25

17 35

30

28

120

60

100

80

25

17 30

28 35

13 / 40

Page 73: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

14 / 40

Page 74: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● É possível que múltiplas subárvores se tornem desbalanceadas depois da inserção de um novo elemento.

14 / 40

Page 75: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● É possível que múltiplas subárvores se tornem desbalanceadas depois da inserção de um novo elemento.

● Porém, somente o nó raiz mais próximo do novo elemento terá que ser rotacionado.

14 / 40

Page 76: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● É possível que múltiplas subárvores se tornem desbalanceadas depois da inserção de um novo elemento.

● Porém, somente o nó raiz mais próximo do novo elemento terá que ser rotacionado.

● Esse elemento que deverá ser rotacionado é chamado de nó pivot.

14 / 40

Page 77: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● É possível que múltiplas subárvores se tornem desbalanceadas depois da inserção de um novo elemento.

● Porém, somente o nó raiz mais próximo do novo elemento terá que ser rotacionado.

● Esse elemento que deverá ser rotacionado é chamado de nó pivot.

● Portanto, nó pivô é aquele que após a inserção possui fator de balanceamento fora do intervalo.

14 / 40

Page 78: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● É possível que múltiplas subárvores se tornem desbalanceadas depois da inserção de um novo elemento.

● Porém, somente o nó raiz mais próximo do novo elemento terá que ser rotacionado.

● Esse elemento que deverá ser rotacionado é chamado de nó pivot.

● Portanto, nó pivô é aquele que após a inserção possui fator de balanceamento fora do intervalo.

● Uma subárvore AVL é rebalanceada ao executarmos uma rotação em volta desse pivot.

● Existem quatro casos de rotação do pivot.

14 / 40

Page 79: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

15 / 40

Page 80: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1

15 / 40

Page 81: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

15 / 40

Page 82: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

15 / 40

Page 83: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

15 / 40

Page 84: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

Fator de balanço = 4 - 1

15 / 40

Page 85: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

Fator de balanço = 4 - 1

Fator de balanço = 3 - 1

15 / 40

Page 86: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

Fator de balanço = 4 - 1

Fator de balanço = 3 - 1

Quem será o pivot?

15 / 40

Page 87: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

Fator de balanço = 4 - 1

Fator de balanço = 3 - 1

Quem será o pivot?

15 / 40

Page 88: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 1– Ocorre quando o fator de balanço do lado esquerdo

do nó pivot (P) é maior e o novo elemento é inserido no lado do filho esquerdo (C) do pivot.

Fator de balanço = 4 - 1

Fator de balanço = 3 - 1

Quem será o pivot?

pivot

15 / 40

Page 89: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

16 / 40

Page 90: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

ANTES

16 / 40

Page 91: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

P

CS3 h

S2 hS1h

ANTES

16 / 40

Page 92: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

P

CS3 h

S2 hS1h

ANTES DEPOIS

16 / 40

Page 93: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

P

CS3 h

S2 hS1h

P

CS3 h

S2 hS1

ANTES DEPOIS

16 / 40

Page 94: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

P

CS3 h

S2 hS1h

P

CS3 h

S2 hS1

novo nó

ANTES DEPOIS

16 / 40

Page 95: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

P

CS3 h

S2 hS1h h+1

P

CS3 h

S2 hS1

novo nó

ANTES DEPOIS

16 / 40

Page 96: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

17 / 40

Page 97: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● O nó pivot deve ser rotacionado para direita do seu filho à esquerda.

17 / 40

Page 98: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● O nó pivot deve ser rotacionado para direita do seu filho à esquerda.

● P se torna o filho à direita de C e o filho à direita de C se torna o filho à esquerda de P.

17 / 40

Page 99: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

18 / 40

Page 100: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

ANTES

18 / 40

Page 101: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

h+1

P

CS3 h

S2 hS1

novo nó

ANTES

18 / 40

Page 102: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

DEPOIS

h+1

P

CS3 h

S2 hS1

novo nó

ANTES

18 / 40

Page 103: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

DEPOIS

h+1

P

CS3 h

S2 hS1

novo nó

ANTES

h+1

C

S2 hS1

novo nóS3

P

18 / 40

Page 104: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Exemplo Caso 1

19 / 40

Page 105: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Exemplo Caso 1

ANTES

19 / 40

Page 106: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Exemplo Caso 1

ANTES

19 / 40

Page 107: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Exemplo Caso 1

ANTES

19 / 40

Page 108: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Exemplo Caso 1

ANTES DEPOIS

19 / 40

Page 109: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Exemplo Caso 1

ANTES DEPOIS

19 / 40

Page 110: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

20 / 40

Page 111: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Este caso envolve três nós: pivot (P), o seu filho à

esquerda (C) e o filho deste à direita (G).

20 / 40

Page 112: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Este caso envolve três nós: pivot (P), o seu filho à

esquerda (C) e o filho deste à direita (G).– Para este caso ocorrer, o fator de balanço à

esquerda (C) do nó pivot (P) é maior e o novo elemento é inserido do lado direito de C.

20 / 40

Page 113: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

21 / 40

Page 114: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

21 / 40

Page 115: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

P

Ch

h GS1

h-1 S2 h-1S3

S4

21 / 40

Page 116: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó21 / 40

Page 117: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó21 / 40

Page 118: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó22 / 40

Page 119: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Serão necessárias duas rotações. P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó22 / 40

Page 120: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Serão necessárias duas rotações.– Nó G deve ser rotacionado.

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó22 / 40

Page 121: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Serão necessárias duas rotações.– Nó G deve ser rotacionado.

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó22 / 40

Page 122: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Serão necessárias duas rotações.– Nó G deve ser rotacionado.– O nó pivot P será rotacionado.

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó22 / 40

Page 123: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2– Serão necessárias duas rotações.– Nó G deve ser rotacionado.– O nó pivot P será rotacionado.

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó22 / 40

Page 124: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó23 / 40

Page 125: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó23 / 40

Page 126: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

h-1 S3 hS4

G

P

h S1 h-1S2

C

P

Ch

h GS1

h-1 S2 h-1S3

S4

nó nó23 / 40

Page 127: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

24 / 40

Page 128: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

24 / 40

Page 129: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

24 / 40

Page 130: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

C

24 / 40

Page 131: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

C

G

24 / 40

Page 132: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

C

G

24 / 40

Page 133: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

C

G

G

24 / 40

Page 134: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

C

G

G

P

24 / 40

Page 135: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 2

P

C

G

G

C P

24 / 40

Page 136: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Casos 3 e 4

25 / 40

Page 137: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Casos 3 e 4– O caso 3 é um espelho do caso 1.

25 / 40

Page 138: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Casos 3 e 4– O caso 3 é um espelho do caso 1.– O caso 4 é um espelho do caso 2.

25 / 40

Page 139: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Casos 3 e 4– O caso 3 é um espelho do caso 1.– O caso 4 é um espelho do caso 2.– A diferença é que o novo elemento é inserido na

subárvore à direita do nó pivot ou como um descendente da subárvore à direita.

25 / 40

Page 140: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 3

26 / 40

Page 141: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 3

26 / 40

Page 142: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 3

26 / 40

Page 143: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 4

27 / 40

Page 144: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 4

27 / 40

Page 145: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Caso 4

27 / 40

Page 146: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Vamos construir uma AVL com os seguintes elementos: [60, 25, 35, 100, 17, 80]

28 / 40

Page 147: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Vamos construir uma AVL com os seguintes elementos: [60, 25, 35, 100, 17, 80]

60

28 / 40

Page 148: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Vamos construir uma AVL com os seguintes elementos: [60, 25, 35, 100, 17, 80]

60 60

25

28 / 40

Page 149: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Vamos construir uma AVL com os seguintes elementos: [60, 25, 35, 100, 17, 80]

60 60

25

60

25

35

DESBALANCEADA 28 / 40

Page 150: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

29 / 40

Page 151: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

60

25

35

29 / 40

Page 152: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

60

25

35

PASSO 1

29 / 40

Page 153: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

60

25

35

60

35

25

PASSO 1

29 / 40

Page 154: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

60

25

35

60

35

25

PASSO 1 PASSO 2

29 / 40

Page 155: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

60

25

35

60

35

25

35

25 60

PASSO 1 PASSO 2

29 / 40

Page 156: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Continuando a inserçao [..., 100, 17, 80]

30 / 40

Page 157: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Continuando a inserçao [..., 100, 17, 80]

35

25 60

100

30 / 40

Page 158: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Continuando a inserçao [..., 100, 17, 80]

35

25 60

100

35

25 60

10017

30 / 40

Page 159: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Continuando a inserção [..., 80]

31 / 40

Page 160: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Continuando a inserção [..., 80]

35

25 60

10017

8031 / 40

Page 161: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Continuando a inserção [..., 80]

DESBALANCEADA35

25 60

10017

8031 / 40

Page 162: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

32 / 40

Page 163: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

35

25 60

10017

8032 / 40

Page 164: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● RotacionamentoPASSO 1

35

25 60

10017

8032 / 40

Page 165: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

35

25 60

8017

100

PASSO 135

25 60

10017

8032 / 40

Page 166: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

33 / 40

Page 167: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

35

25 60

8017

10033 / 40

Page 168: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

35

25 60

8017

100

PASSO 2

33 / 40

Page 169: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Inserção

● Rotacionamento

35

25 60

8017

100

35

25 80

10017 60

PASSO 2

33 / 40

Page 170: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

34 / 40

Page 171: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Quando um elemento é removido de uma AVL, nós devemos garantir que a propriedade de balanceamento seja mantida.

34 / 40

Page 172: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Quando um elemento é removido de uma AVL, nós devemos garantir que a propriedade de balanceamento seja mantida.

● Depois de remover o elemento desejado, as subárvores devem ser rebalanceadas.

34 / 40

Page 173: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Suponha que vamos remover o nó 17 da AVL abaixo:

35 / 40

Page 174: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Suponha que vamos remover o nó 17 da AVL abaixo:

35 / 40

Page 175: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Suponha que vamos remover o nó 17 da AVL abaixo:

35 / 40

Page 176: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Necessária uma rotação no nó pivot 25.

36 / 40

Page 177: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Remoção

● Quando uma subárvore é rebalanceada devido a uma remoção dos seus nós, pode ser que os pais desse nó (pivot) se tornem desbalanceados.

● Esse efeito colateral pode ir subindo na árvore.● Se isso ocorrer, esses nós deverão ser

avaliados e rebalanceados, se necessário.

37 / 40

Page 178: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Exercícios

● Considere o conjunto de valores abaixo e mostre a construção, de cada elemento, em uma árvore AVL. – Valores: [30, 63, 2, 89, 16, 24, 19, 52, 27, 9, 4, 45]

● A ordem em que os elementos são inseridos numa árvore AVL não importa, pois independente da ordem, sempre resulta na mesma árvore. O que você acha?

38 / 40

Page 179: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Exercícios

● Considere a árvore AVL abaixo e mostre o resultado dessa árvore após remover as chaves 1, 78 e 41.

39 / 40

Page 180: Árvores AVLtiagodemelo.info/wp-content/uploads/2020/09/arvores-avl... · 2020. 9. 22. · O problema é que essa técnica exige conhecer antecipadamente todas as chaves e isso não

Exercícios

● Qual é a diferença entre ABB e AVL?● Dada uma árvore binária T, proponha um

programa em Python que determine se T é uma árvore AVL (lembrando-se das restrições de altura e de árvore de busca).

● Quantas árvores AVL existem com altura 1, 2, 3 e 4? Faça o mesmo considerando um número mínimo de nós (dica: construa todas as possíveis árvores binárias que também sejam AVL).

40 / 40