Árvores AVL

15
ÁRVORES AVL Estrutura de Dados II Prof. Sandro Moreira [email protected]

description

Definições de Arvores Balanceadas AVL

Transcript of Árvores AVL

ÁRVORES AVL

Estrutura de Dados II

Prof. Sandro [email protected]

DEFINIÇÕES• As árvores binárias de pesquisa são projetadas para um

acesso rápido à informação.

• Idealmente a árvore deve ser razoavelmente equilibrada e a sua altura será dada (no caso de estar completa) por h=log2(n+1)

• O tempo de pesquisa tende a O(log2N).

• Porém, com sucessivas inserções de dados principalmente ordenados, ela pode se degenerar para O(n)

BALANCEAMENTO

• Árvores completas são aquelas que minimizam o número de comparações efetuadas no pior caso para uma busca com chaves de probabilidades de ocorrências idênticas

• Contudo, para garantir essa propriedade em aplicações dinâmicas, é preciso reconstruir a árvore para seu estado ideal a cada operação sobre seus nós (inclusão ou exclusão)

ILUSTRAÇÃO

AVL• A AVL (Adelson-Velskii e Landis – 1962) é uma árvore

altamente balanceada, isto é, nas inserções e exclusões, procura-se executar uma rotina de balanceamento tal que as alturas das sub-árvores esquerda e sub-árvores direita tenham alturas bem próximas

• Uma árvore AVL é uma árvore na qual as alturas das subárvores esquerda e direita de cada nó diferem no máximo por uma unidade.

• Fator de balanceamento

Altura da subárvore direita - Altura da subárvore esquerda

EXEMPLOS

ROTAÇÕES

Simples para Direita

Simples para Esquerda

ROTAÇÕES

Dupla - Filho para Direita e Pai para Esquerda

Dupla - Filho para Esquerda e Pai para Direita

DESCRIÇÃO DE ROTAÇÕESDiferença de Altura de um

NóDiferença de Altura do Nó Filho do Nó Desbalanceado Tipo de Rotação

2 1 Simples à Esquerda

2 0 Simples à Esquerda

2 -1 Dupla - Filho para Direita e Pai para Esquerda

-2 1 Dupla - Filho para Esquerda e Pai para Direita

-2 0 Simples à Direita

-2 -1 Simples à Direita

ROTAÇÕES

ROTAÇÕES

ROTAÇÕES

ROTAÇÕES

EXERCÍCIOS PARA FIXAÇÃO1. Realize os balanceamentos necessários após as ações

solicitadas:

a) Crie uma árvore com os seguintes elementos: 6, 8, 12

b) Insira o 11 e o 14 e remova o 6 na árvore da questão a

c) Crie uma árvore com os seguintes elementos: 6, 8, 7

d) Crie uma árvore com os seguintes os elementos: 6, 3, 5

e) Crie uma árvore com os elementos 10, 6, 14, 2, 8

f) Remova o elemento 14 da questão e

EXERCÍCIOS PARA FIXAÇÃO

2. Redesenhando a árvore a cada remoção, desenhe uma árvore AVL com os números a seguir : 50, 30, 55, 10, 15, 20, 80, 90, 68. A seguir remova os números 50 e 90.

3. Redesenhando a árvore a cada remoção, desenhe uma árvore AVL com os números a seguir : 50, 180, 200, 190, 198. A seguir remova os números 50 e 200.