300 likes | 411 Views
Ávores AVL. MC 202 – Estruturas de dados. Cristiano Damaschio Ferreira crferreira@gmail.com. Introdução. Árvore binária de busca. Introdução. Árvore binária de busca. h = 2. É AVL. h = 1. h = 0. h = 0. h = 0. AVL. |H R – H L | < 2 Exemplos:. h = 2. NÃO É AVL. h = 1. h = 0.
E N D
Ávores AVL MC 202 – Estruturas de dados Cristiano Damaschio Ferreira crferreira@gmail.com
Introdução • Árvore binária de busca
Introdução • Árvore binária de busca
h = 2 É AVL h = 1 h = 0 h = 0 h = 0 AVL • |HR – HL| < 2 • Exemplos:
h = 2 NÃO É AVL h = 1 h = 0 h = 0 AVL • |HR – HL| < 2 • Exemplos:
b = 0 b = 0 b = +1 b = 0 b = 0 b = 0 AVL • Fator de balanceamento b = HR – HL • Exemplo:
AVL • Inserção • Semelhante à inserção em árvore binária de busca • Pode desbalancear a árvore
b = 0 b = -2 b = +1 b = -1 b = 0 b = 0 AVL • Exemplo • Inserção do valor 5 b = 0 b = +1 b = -1 b = 0 b = 0
AVL • Caso a
AVL • Caso b
AVL • Caso c
AVL • Caso d
AVL • Remanejamento das árvores • Rotação simples à direita • Rotação dupla à direita • Rotação simples à esquerda • Rotação dupla à esquerda
AVL • Rotação simples à direita
AVL • Rotação simples à direita • ne é colocado na raiz • EE permanece a sub-árvore esquerda de ne • n torna-se a raiz da sub-árvore direita de ne • ED torna-se sub-árvore esquerda de n • D permanece a sub-árvore direita de n
AVL • Rotação dupla à direita
AVL • O caso c é similar ao caso a
AVL • O caso d é similar ao caso b
AVL • A remoção é similar à remoção em árvore binária de busca • Primeiro, busca-se o nó que contém o valor a ser removido. • Se o nó for folha, remove-o • Se o nó possuir um filho, esse filho substitui o nó • Senão, busca-se a menor (maior) folha da sub-árvore direita (esquerda) do nó, substitui o nó por essa folha
AVL • A remoção pode desbalancear a árvore • Exemplo 1: remover 25
AVL • Exemplo 1
AVL • Exemplo 1
AVL • Exemplo 2: • Retirar 70
AVL • Exemplo 2:
AVL • Exemplo 2:
AVL • Exemplo 3: • Retirar 50
AVL • Exemplo 3:
AVL • Exemplo 3:
AVL • Exemplo 3:
AVL • Exemplo 3: