arvores binarias implementação

Upload: gra-maria

Post on 10-Mar-2016

11 views

Category:

Documents


0 download

DESCRIPTION

Aplicação a Projeto de análise de algoritmos

TRANSCRIPT

  • Algoritmos e Estruturas de Dados2005/2006

    rvores

  • 2AED - 2005/06

    rvores Conjunto de ns e conjunto de arestas que ligam pares de ns

    Um n a raiz Com excepo da raiz, todo o n est ligado por uma aresta a 1 e 1 s

    n (o pai) H um caminho nico da raiz a cada n; o tamanho do caminho para um

    n o nmero de arestas a percorrer

    A

    B C D E

    F G H I

    J

    Ns sem descendentes: folhas

  • 3AED - 2005/06

    rvores Ramos da rvore

    rvore de N ns tem N-1 ramos Profundidade de um n

    Comprimento do caminho da raiz at ao n Profundidade da raiz 0 Produndidade de um n 1 + a profundidade do seu pai

    Altura de um n Comprimento do caminho do n at folha a maior profundidade

    Altura de uma folha 0 Altura de um n 1 + a altura do seu filho de maior altura

    Altura da rvore: altura da raiz Se existe caminho do n u para o n v

    u antepassado de v v descendente de u

    Tamanho de um n: nmero de descendentes

  • 4AED - 2005/06

    rvores

    A

    B

    G

    C D

    E

    J

    F

    H I

    profundidade=0

    profundidade=1

    profundidade=2

    profundidade=3

    altura(A) = altura rvore = 3

    altura(D) = 2

    pai(G) = D

    filhos(G) = { H, I, J }

  • 5AED - 2005/06

    rvores binrias Uma rvore binria uma rvore em que cada n no tem mais

    que dois filhos

    Propriedades: Uma rvore binria no vazia com profundidade h tem no mnimo h+1,

    e no mximo 2h+1-1 ns A profundidade de uma rvore com n elementos (n>0) no mnimo

    log2n, e no mximo n-1 A profundidade mdia de uma rvore de n ns O(n)

  • 6AED - 2005/06

    rvores Percorrer rvores

    Os elementos de uma rvore (binria) podem ser enumerados por quatro ordens diferentes. As trs primeiras definem-se recursivamente:

    Pr-ordem: Primeiro a raiz, depois a sub-rvore esquerda, e finalmente a sub-rvore direita

    Em-ordem: Primeiro a sub-rvore esquerda, depois a raiz, e finalmente a sub-rvore direita

    Ps-ordem: Primeiro a sub-rvore esquerda, depois a sub-rvore direita, e finalmente a raiz

    Por nvel: Os ns so processados por nvel (profundidade) crescente, e dentro de cada nvel, da esquerda para a direita

  • 7AED - 2005/06

    rvores Percorrer rvores - exemplo +

    *

    sen

    j

    -

    a b

    f

    *

    h

    + * - a b sen * f h jPor nvel

    a b * f sen h j * - +Ps-ordem

    a * b + f sen h * jEm-ordem

    + * a b sen f * h jPr-ordem

  • 8AED - 2005/06

    rvores binrias: implementao Operaes:

    Criar uma rvore vazia Determinar se uma rvore est vazia Criar uma rvore a partir de duas sub-rvores Eliminar os elementos da rvore (esvaziar a rvore) Definir iteradores para percorrer a rvore Imprimir uma rvore ...

  • 9AED - 2005/06

    rvores binrias: aplicaesExpresses aritmticas

    +

    2

    1

    *

    -

    4

    *

    1 +

    2 3

    Expresso = 1 * ( 2 + 3 ) + ( 2 * ( 4 1 ) )

  • 10AED - 2005/06

    rvores binrias: aplicaes Construo da rvore de expresses

    O algoritmo similar ao algoritmo de converso infixa->RPN mas usa duas pilhas, uma para guardar os operadores e outra para guardar sub-rvores correspondentes a sub-expresses.

    O algoritmo procede da seguinte forma: Nmeros so transformados em rvores de 1 elemento e colocados na pilha

    de operandos. Operadores so tratados como no programa de converso de infixa -> RPN

    (usando uma pilha apenas para operadores e (). Quando um operador retirado da pilha, duas sub-rvores (operandos) so

    retirados da pilha de operandos e combinados numa nova sub-rvore, que por sua vez colocada na pilha.

    Quando a leitura da expresso chega ao fim, todos os operadores existentes na pilha so processados.

  • 11AED - 2005/06

    rvores binrias de pesquisa rvore binria de pesquisa

    rvore binria, sem elementos repetidos, que verifica a seguinte propriedade: Para cada n, todos os valores da sub-rvore esquerda so menores, e todos os

    valores da sub-rvore direita so maiores, que o valor desse n

    15

    12

    17

    21

    10 14

  • 12AED - 2005/06

    rvores binrias de pesquisa Estrutura linear com elementos ordenados

    A pesquisa de elementos pode ser realizada em O(log n) ... mas no insero ou remoo de elementos

    Estrutura em rvore binria pode manter o tempo de acesso logartmico nas operaes de insero e

    remoo de elementos rvore binria de pesquisa

    mais operaes do que rvore binria bsica: pesquisar, inserir, remover objectos nos ns devem ser comparveis (Comparable)

  • 13AED - 2005/06

    rvores binrias de pesquisa Pesquisa

    usa a propriedade de ordem na rvore para escolher caminho, eliminando uma sub-rvore a cada comparao

    Insero como pesquisa; novo n inserido onde a pesquisa falha

    Mximo e mnimo procura, escolhendo sempre a subrvore direita (mximo), ou sempre a sub-

    rvore esquerda (mnimo)

    Remoo N folha : apagar n N com 1 filho : filho substitui o pai N com 2 filhos: elemento substitudo pelo menor da sub-rvore direita (ou

    maior da esquerda); o n deste tem no mximo 1 filho e apagado.

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13