MC 202 – Estruturas de dados Á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
AVL |HR – HL| < 2 Exemplos: h = 2 h = 1 h = 0 É AVL
AVL |HR – HL| < 2 Exemplos: h = 2 h = 1 h = 0 NÃO É AVL
AVL Fator de balanceamento b = HR – HL Exemplo: b = 0 b = +1
AVL Inserção Semelhante à inserção em árvore binária de busca Pode desbalancear a árvore
AVL Exemplo Inserção do valor 5 b = 0 b = -2 b = -1 b = +1 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: