Estrutura de Dados Árvores Avl

download Estrutura de Dados Árvores Avl

of 14

description

Arvores binarias e AVL

Transcript of Estrutura de Dados Árvores Avl

  • 1AlgAlg. e . e EstruturaEstrutura de Dados IIde Dados IIProf. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    YYrvores Binrvores Binrias Balanceadasrias Balanceadas

    FaculdadeFaculdade SEAMASEAMACurso de Sistemas de InformaCurso de Sistemas de Informaoo

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    Problemas com rvores BinriasProblemas com rvores Binrias

    Deterioraoquando inserimos utilizando a insero simples, dependendo da distribuio de dados, pode haver deteriorao.rvores deterioradas perdem a caracterstica de eficincia de buscaeficincia de busca.

    rvore deteriorada: em desequilbrio

    44 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Binriasrvores Binrias

    rvores binrias so rvores cujos ns tem um grau igual ou menor a 2. Consequentemente as sub-rvores devem classificar-se em sub-rvore esquerda ou direita.

    dd

    bb ff

    aa cc ee

  • 255 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Binriasrvores Binrias

    rvore estritamente binria so rvores cujos ns tem um grau igual a 0 ou 2.

    ff

    bb gg

    aa dd

    cc ee

    66 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Binriasrvores Binrias

    rvore binria completa so rvores cujos ns terminais esto no penltimo ou ltimo nvel da rvore

    ff

    bb hh

    aa dd

    cc ee

    gg ii

    77 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Binriasrvores Binrias

    rvore binria cheia so rvores cujos ns terminais esto no ltimo nvel da rvore e os seus ns intermdios so de grau 2

    ff

    bb hh

    aa dd gg ii

    88 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Binriasrvores Binrias

    A * (B + C)

    Infixa: A*(B+C)Posfixa: ABC+*Prefixa: *A+BC

    **AA ++

    BB CC

  • 399 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Balanceadasrvores Balanceadas

    Uma rvore dita balanceada quando as suas sub-rvores esquerda e direita possuem a mesma altura.

    Todos os links vazios esto no mesmo nvel, ou seja, que a rvore est completa.

    A rvore que no est balanceada, define-se como degenerada

    1010 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Balanceadasrvores Balanceadas

    dd

    bb ff

    aa ggcc ee

    cc

    bb dd

    aa ee

    ff

    gg

    dd

    bb ff

    aa ggcc ee

    hh

    Arvore BinArvore Binria Cheia Balanceadaria Cheia BalanceadaArvore BinArvore Binria Degeneradaria Degenerada

    Arvore BinArvore Binria Completa Balanceadaria Completa Balanceada

    1111 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Balanceadasrvores Balanceadas

    Balanceamento:

    Busca uma distribuio equilibrada dos ns;

    Busca otimizar a consulta;

    Busca minimizar o nmero mdio de comparaes necessrio para a localizao de uma chave.

    1212 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores Balanceadasrvores Balanceadas

    Balanceamento por altura:Busca-se minimizar a altura da rvore;

    rvore Completamente Balanceada:Uma rvore completamente balanceada quando a distncia mdia dos ns at a raiz for mnima;

    Uma rvore binria dita completamente balanceada se, para cada n, o nmero de ns de suas sub-rvores diferem de no mximo, 1;

    rvore completamente balanceada a rvore com menor altura para o seu nmero de ns.

  • 4AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVLrvores AVL

    Algoritmo de balanceamento de rvores binrias

    Criao da rvore AVLAVL (AAdelson-VVelskii e LLandis), divulgado em 1962.

    A rvore AVL uma rvore binria com uma condicondio de o de balanbalanoo

    rvores AVL permitem insero / deleo e rere--balanceamentobalanceamento aceitavelmente rpidos.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVLrvores AVL

    Critrio de balanceamento:Dado um nodo qualquer, uma rvore est AVLAVL--balanceadabalanceada se as alturas das duas sub-rvores deste nodo diferem de, no mximo, 1.

    Para re-balancear uma rvore aps uma insero, so utilizadas rotarotaeses de sub-rvores:

    Rotaes simples em muitos casosRotaes duplas em alguns.

    1515 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotaorvores AVL: Incluso com Rotao

    Exemplo de reExemplo de re--balanceamento: balanceamento: O nodo com chave 7 desequilibrou a O nodo com chave 7 desequilibrou a rvore. Com a rvore. Com a rotarotao da subo da sub--rvore em torno do nodo 8, rervore em torno do nodo 8, re--balanceamos.balanceamos.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotaorvores AVL: Incluso com Rotao

    Algoritmo bsico:Partimos do nodo inserido e subimos a rvore.

    Atualizamos a informao do balanceamento em cada nodo (na rvore AVL, cada nodo conhece a sua altura).

    Se chegamos raiz sem encontrar nada errado, terminamos.

    Caso encontremos um nodo desbalanceado (corresponde |Hesq - Hdir| < 2 ferida), realizamos a rotao no primeiro nodo desbalanceado encontrado. No exemplo anterior, isto significa que, depois da insero

    de 7, o nodo 9 ficou desbalanceado.

  • 5AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotaorvores AVL: Incluso com Rotao

    Exemplo: Criao de uma rvore AVL com os nos de 1 a 7

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotaorvores AVL: Incluso com Rotao

    O primeiro problema ocorre quando inserimos o 3. A condicondioo--AVLAVL foi violada.

    Executamos uma rotao simples entre a raiz (cuja condio-AVL est violada) e seu filho da direita.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Simplesrvores AVL: Incluso com Rotao Simples

    Inserimos 4 sem problemas. Inserimos 5: violao em 3.

    Mesmo processo da rotao anterior ser seguido.ImportantImportantssimossimo: Observe que 2 precisa ser notificado que seu filho agora o nodo com chave 4

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 6rvores AVL: Incluso do 6

    O 6 desequilibra a raiz:Sub-rvore direita tem altura 3Sub-rvore esquerda tem altura 1.

    Rotacionamos na raiz entre 2 e 4:Transformamos 2 em filho de 4Sub-rvore esquerda original de 4 agora sub-rvore direita de 2. Condio de ordem da rvore de busca mantida.

  • 6AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 7rvores AVL: Incluso do 7

    A incluso de um nodo com chave 7 causa uma rotao como j havamos visto antes:

    5 fica desequilibrado. Rotacionamos em 6.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Duplarvores AVL: Incluso com Rotao Dupla

    O algoritmo descrito at agora tem um problema:

    Existem casos onde ele no basta para consertar a rvore aps uma incluso ou excluso.

    Exemplo: Inserimos as chaves 88 a 1515, em ordem inversa, na rvore anterior

    A insero de 1515 no provoca problemas, nem desbalanceia a rvore.

    A insero de 1414, por sua vez, faz o re-balanceamento falhar.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Duplarvores AVL: Incluso com Rotao Dupla

    O problema que surge aqui, que tanto 7 como 14 so candidatos sub-rvore esquerda de 15.Neste caso, necessitamos de uma dupla

    rotao.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Duplarvores AVL: Incluso com Rotao Dupla

    Semelhante rotao simples, s que envolve 4 sub-rvores:

    Corresponderia a uma rotao efetuada primeiro entre k1 e k2 e depois entre k2 e k3.

    kk33

    kk11

    kk22AA

    BB CC

    DD

    kk22

    kk11kk33

    CCAA BB DD

  • 7AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Duplarvores AVL: Incluso com Rotao Dupla

    kk33

    kk11

    kk22AA

    BB

    CC DD

    kk22

    kk11kk33

    CCAA BB DD

    kk33

    kk11

    kk22AA

    BB CC

    DD

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Duplarvores AVL: Incluso com Rotao Dupla

    Exemplo simtrico ao anterior

    kk33

    kk11

    kk22

    DD

    BB CC

    AA

    kk22

    kk33kk11

    CCAA BB DD

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 14 com Rotao Duplarvores AVL: Incluso do 14 com Rotao Dupla

    No exemplo, a rotao direitadireita--esquerdaesquerda envolve o 7, o 15 e o 14:

    k3k3 o nodo de chave 7, k1k1 o de chave 15 e k2k2 o de chave 14Primeiro rotacionamos 14-15 a direita, depois 7-14 a esquerda.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 13 (rot.dupla)rvores AVL: Incluso do 13 (rot.dupla)

    Novamente uma dupla rotao direita-esquerda:Desta vez a rotao envolver 6 (k3k3), 14 (k1k1) e 7 (k2k2).

  • 8AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 12rvores AVL: Incluso do 12

    A incluso do 12 provoca um desequilbrio na raiz:

    Como 12 no est entre 4 e 7, sabemos que uma rotao simples vai funcionar.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 11rvores AVL: Incluso do 11

    A incluso do 11 provoca um desequilbrio logo embaixo:

    Como 11 no est entre 12 e 13, sabemos que uma rotao simples vai funcionar.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso do 10,9,8rvores AVL: Incluso do 10,9,8

    10 e 9 sero inseridos com rotao simples, 8 sem rotao alguma.

    Tente em casa.

    A rvore resultante veremos adiante.

    AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvores AVL: Incluso com Rotao Duplarvores AVL: Incluso com Rotao Dupla

    rvore resultante

  • 93333 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    120

    110 150

    130 200100

    80

    RotaoDireita

    120

    100 150

    130 20080 110

    Implementao - rvore AVLImplementao - rvore AVL

    Exemplo de Rotao Direita:

    3434 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    procedure rotacao_direita(var pt: Apno);var ApU: Apno;begin

    Apu:= pt^.esq;pt^.esq:= Apu^.dir; Apu^.dir:= pt; pt^.bal:= 0;pt:= Apu;

    end;

    rvore AVL Rotao para Direitarvore AVL Rotao para Direita

    110110balbal = |2|= |2|

    b /

    100100c /

    8080/ /

    pt = apt = a

    3535 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    procedure rotacao_direita(var pt: Apno);var ApU: Apno;begin

    Apu:= pt^.esq;pt^.esq:= Apu^.dir; Apu^.dir:= pt; pt^.bal:= 0;pt:= Apu;

    end;

    begin

    rvore AVL Rotao para Direitarvore AVL Rotao para Direita

    procedure rotacao_direita(var pt: Apno);var ApU: Apno;

    Apu:= pt^.esq;pt^.esq:= Apu^.dir;Apu^.dir:= pt; pt^.bal:= 0;pt:= Apu;

    end;

    110110balbal = |2|= |2|

    b /

    100100c /

    8080/ /

    pt = apt = aApuApu = ?= ?ApuApu = b= b

    /

    a

    110110balbal = |0|= |0|

    pt = bpt = b

    3636 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvore AVL Rotao para Direitarvore AVL Rotao para Direita

    100100c a

    8080/ / 110110BalBal = |2|= |2|

    / /110110

    pt = bpt = b

  • 10

    3737 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    RotaoEsquerda

    120

    100 150

    130 20080 110

    120

    130100

    11080 150

    200

    Implementao - rvore AVLImplementao - rvore AVL

    Exemplo de Rotao Esquerda:

    3838 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    procedure rotacao_esq(var pt: Apno);var Apu: Apno;begin

    Apu:= pt^.dir;pt^.dir:= Apu^.esq; Apu^.esq:= pt; pt^.bal:= 0;pt:= Apu;

    end;

    rvore AVL Rotao para Esquerdarvore AVL Rotao para Esquerda

    130130balbal = |2|= |2|

    / b

    150150/ c

    200200/ /

    pt = apt = a

    3939 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    procedure rotacao_esq(var pt: Apno);var Apu: Apno;begin

    Apu:= pt^.dir;pt^.dir:= Apu^.esq; Apu^.esq:= pt; pt^.bal:= 0;pt:= Apu;

    end;

    begin

    rvore AVL Rotao para Esquedarvore AVL Rotao para Esqueda

    procedure rotacao_esq(var pt: Apno);var Apu: Apno;

    Apu:= pt^.dir;pt^.dir:= Apu^.esq;Apu^.esq:= pt; pt^.bal:= 0;pt:= Apu;

    end;

    130130balbal = |2|= |2|

    / b

    150150/ c

    200200/ /

    pt = apt = a

    ApuApu = ?= ?ApuApu = b= b

    /130130balbal = |0|= |0|

    pt = bpt = b

    a

    4040 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    rvore AVL Rotao para Esquerdarvore AVL Rotao para Esquerda

    150150c a

    130130/ / 110110BalBal = |2|= |2|

    / /200200

    pt = bpt = b

  • 11

    4141 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    120

    100 150

    130 20080 110

    RotaoDupla Direita

    120

    110 150

    130 20080

    100

    rvore AVLrvore AVL

    Exemplo de Rotao Dupla Direita:

    4242 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    120

    100 150

    130 20080 110

    120

    100 130

    150

    20080 110

    RotaoDupla Esquerda

    rvore AVLrvore AVL

    Exemplo de Rotao Dupla Esquerda:

    4343 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    Identificao do caso a ser aplicado:Supondo que o n q foi includo na rvore T, se houver desbalanceamento da rvore, sendo p o n mais prximo das folhas de T:

    |he(p) hd(p)| = 2he: altura da subrvore esquerdahd: altura da subrvore direita Caso 1: he(p)>hd(p)

    Sendo u o filho esquerda de p:1.1. he(u)>hd(u) rotao direita1.2. hd(u)>he(u) rotao dupla direita

    Caso 2: hd(p)>he(p)Sendo z o filho direita de p:2.1. hd(z)>he(z) rotao esquerda2.2. he(z)>hd(z) rotao dupla esquerda

    Regra Geral - rvore AVLRegra Geral - rvore AVL

    4444 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    AplicaesAplicaes

    Para que servem as rvores Binrias?

    Exemplos de aplicaes:Redes de Comunicao de Dados Envio de pacotes ordenados e/ou redundantes

    Codificao de Huffman Compresso e Descompresso de arquivos

  • 12

    4545 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    1) Redes de Comunicao1) Redes de Comunicao

    A maioria dos protocolos de comunicao fragmenta as mensagens em pacotes que so numerados e enviados atravs da redeNo h garantia da chegada em ordem dos

    pacotesPerdas de pacotes geram novos envios e estes

    podem causar duplicatas dos mesmos

    4646 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    Reconstruo da MensagemReconstruo da Mensagem

    Como reconstruir a mensagem corretamente?Descartar os pacotes repetidosOrdenar os pacotes

    Como implementar tal algoritmo?Utilizando rvores Binrias

    4747 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    Exemplo:Exemplo:

    R

    R

    R

    RR

    A B

    P3

    P1

    P2

    P3

    P1

    P2

    P3

    P1P1

    Ordem de Chegada:

    P3 P1 P2

    Confirmao de envio: P1 e P3.

    P1 Ok

    P2 ?

    P3 Ok

    Reenvio de P2.

    P2 P2

    Problemas: ordens e redundncia dos pacotes

    4848 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    AlgoritmoAlgoritmo

    O primeiro pacote colocado na raiz da rvore. Cada pacote sucessivo comparado com o da raizSe for igual, descarta-se a rplica. Se for menor

    ou maior, percorre-se os lados esquerdo ou direito da rvoreSub-rvore vazia implica insero do novo

    pacoteSub-rvore no vazia implica comparao dos

    pacotes com a mesma

  • 13

    4949 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    Problemas resolvidos?Problemas resolvidos?

    Problema da ordenaoA ordenao dos pacotes pode ser feita trivialmente com apenas uma chamada ao mtodo inOrder() da rvore binria

    Problema da redundnciaSolucionado com o algoritmo de insero na rvore, visto que o pacote, antes de ser inserido, comparado com os demais que j se encontram na rvore binria

    5050 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    2) Codificao de Huffman2) Codificao de Huffman

    Algoritmo utilizado para comprimir arquivosTodo o algoritmo baseado na criao de uma

    rvore BinriaProgramas como Winzip e WinRAR utilizam

    este algoritmoCriado por David Huffman em 1952

    5151 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    ConclusesConcluses

    As rvores binrias so uma das estruturas de dados mais importantes devido a grande aplicabilidade das mesmas.A maioria dos algoritmos das rvores binrias

    so de simples entendimento, facilitando sobremaneira o desenvolvimento de sistemas.

    5252 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    DvidasDvidas

  • 14

    5353 AlgorAlgortmostmos e Estrutura de Dados II e Estrutura de Dados II 2006/02 2006/02 Prof. Alcides Xavier BenicasaProf. Alcides Xavier Benicasa

    RefernciasReferncias

    Adaptado de Notas de Prof. Yandre Maldonado e Gomes da Costa

    Applet para testes: http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htmhttp://www.engin.umd.umich.edu/CIS/course.des/cis350/treetool/index.htmlhttp://www.cs.queensu.ca/home/jstewart/applets/bst/bst-rotation.html