Árvores Balanceadas

58
Árvores Balanceadas Prof. César Angonese

description

explicação detalhada sobre arvores balanceadas (conteúdo da disciplina de estrutura de dados)

Transcript of Árvores Balanceadas

  • rvores Balanceadas

    Prof. Csar Angonese

  • rvores Balanceadas

    Aspecto importante em arvores , naturalmente, o custo deacesso a uma chave desejada.As rvores binrias que foram estudadas at o presente momentoquando implementadas oferecem um baixo custo de acesso, mascom um certo nmero de inseres e remoes este custo ficaelevado.Para manter este custo ao longo da utilizao, a estrutura deveser alterada periodicamente de forma a moldar os novos dados,esta estrutura denominada de Balanceada.

  • rvores Completas

    So aquelas que minimizam o nmero de comparaes efetuadas no pior caso para uma busca com chaves de probabilidades de ocorrncia idnticas.

  • Exemplo ruim p/restabelecimento de rvores completas

  • Possibilidade de incluso sem aumento de altura

    Existe somente uma possibilidade:- Incluso de uma chave maior que todas as demais

    Se ao contrrio for includo um n de chave menor do que todas as outras;

    - Deixaria de ser completa

  • Incluso do n com chave O (Zero)

  • Transformar em rvore completa

    Para transformar esta ltima em uma rvore completa:- Necessrio alterar a posio na estrutura de todos os seus

    ns;

    - O custo para restabelecer a estrutura excessivo

  • rvores AVL

    Uma rvore binria denominada AVL quando para qualquer n asalturas de suas duas subrvores, esquerda e direita, diferem emmdulo de at uma unidade.

    uma rvore AVL No uma rvore AVL

  • rvore AVL

    rvores de altura balanceada ou de alturaequilibrada foram introduzidas em 1962 porAdelson-Velskii e Landis, tambm conhecidascomo rvores AVL A definio de uma rvore binria de alturaequilibrada (AVL) requer que cada subrvoreseja tambm de altura equilibrada

  • Incluso em rvore AVL

    Uma rvore na qual sero efetuadas incluses de ns. Para que se mantenha uma rvore AVL aps as incluses necessrio efetuar operaes de restabelecimento de regulagem de seus ns, quando necessrio.

    A ideia consiste em verificar, aps cada incluso, se algum n p seencontra desregulado, isto , se a diferena de altura entre as duassub-rvores de p tornou-se maior do que um. Em caso positivo,aplicar transformaes apropriadas para regul-lo.

  • rvores Balanceadas

    Suponha que o n q foi includo em T. Se aps a incluso todos os nsse mantiveram regulados, ento a rvore manteve-se AVL e no hnada a efetuar. Caso contrario, seja p o n mais prximo s folhas deT que se tornou desregulado. Ento p se encontra no caminho de q raiz de T, e sua escolha nica.Concluise que em uma rvore AVL a incluso de um n no podeaumentar em mais de uma unidade de altura de qualquer sub-rvore.

  • Fator de Balanceamento

    O fator de balanceamento ou fator deequilbrio de um n T em uma rvore binria definido como sendo hL hR onde hL e hRso as alturas das subrvores esquerda edireita de T, respectivamente.

    Para qualquer n T numa rvore AVL, o fator de balanceamento assume o valor -1, 0 ou +1

    O fator de balanceamento de uma folha zero

  • Possveis rotaes em uma rvore desbalanceada

    Diferena deAltura de um n

    Diferena de altura do nFilho do n desbalanceado

    Tipo de rotao

    21 Simples direita0 Simples direita-1 Dupla com filho para a

    esquerda e paiPara a direita

    -21 Dupla com filho para a

    direita e pai para a esquerda

    0 Simples esquerda-1 Simples esquerda

  • Tipos de rotaes em rvores

  • Tipos de rotaes em rvores

  • Tipos de rotaes em rvores

  • Tipos de rotaes em rvores

  • Fator de Balanceamento

  • Fator de Balanceamento

  • Remoo em rvore AVL

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Remoo

  • Implementao da incluso

    Seja T uma rvore AVL e x a chave a ser includa em algum novo n q.O processo completo de incluso pode ser dividido da seguinte forma:

    - Efetua-se uma busca em T para verificar se x existe;- Caso afirmativo processo encerrado;- Caso negativo: A busca encontra o local da incluso; Em seguida verifica-se se algum n esta desregulado;

    Caso negativo processo termina; Caso afirmativo a regulagem de T deve ser

    efetuada

  • Implementao da incluso

    Como verificar se algum n v em T tornou-se desregulado aps aincluso: Para isso basta determinar as alturas de suas duas sub-rvores e

    subtrair uma da outra.

    Balano(v) = hd(v) He(v)

    Observa-se que v est regulado se e somente se -1

  • Implementao da incluso

    Caso 1: balano(v) = 1 antes da incluso Neste caso, balano(v) torna-se 0(zero) e a altura da sub-rvore

    de raiz v no foi modificada

    Caso 2: balano(v) = 0 antes da incluso Neste caso, balano(v) torna-se -1 e a altura da sub-rvore de raiz

    v foi modificada. Consequentemente, os ns restantes do caminhoat a raiz tambm podem ter suas alturas modificadas e devem seranalisados

  • Implementao da incluso

    Caso 3: balano(v) = -1 antes da incluso Neste caso, balano(v) torna-se -2 e o n esta desregulado. A

    rotao correta deve ser empregada.

  • Algoritmo

    also

    If (raiz == NULL)raiz = pt;

    If (aux != NULL)if (tipo == E)

    aux->esq = pt;else

    aux->dir = pt;

    ,aux, tipo)

  • also

  • also

    also

    erdadeiro

    ,Aux, tipo)

    ,aux,tipo)

    ,pt, E)

    ,pt, D)

  • Exerccio Desenhar a rvore AVL conforme ns abaixo: Inserir n 30 Inserir n 50 Inserir n 80 Inserir n 20 Inserir n 10 Inserir n 25 Inserir n 70 Remoo do n 30 Remoo do n 20 Remoo do n 10 Remoo do n 25 Insero n 75 Remoo n 50