Problemas com o algoritmo de huffman

0 respostas
lucasn

boa noite,

pessoal, há algum problema lógico nesse trecho

private void posOrd(NodoED n) {
        if (n == null) return;
        posOrd(n.esq);
        posOrd(n.dir);
    }

    private void huffman()
    {
        log.append("Gerando a arvore de Huffman...\n\n");
        log.append("Estados da lista de nodos:\n");
        while ( ls.getNel() > 1 )
        {
            log.append(ls.listaOutput()+"\n");
            NodoED a = ls.removePrimeiro(); //remove o primeiro da lista.
            NodoED b = ls.removePrimeiro(); //remove o primeiro da lista novamente.

            NodoED nn = new NodoED();

            nn.esq = a; //o menor entre A e B
            nn.dir = b; //o maior entre A e B
            nn.val = a.val + b.val; //ocorrencias

            ls.insere(nn);
            log.append(ls.listaOutput()+"\n\n");
        }

        NodoED r = ls.getLista();
        posOrd(r);

    }

pois do jeito que está, a ávore gerada não está sendo binária, gerando erro.

obrigado!

Criado 27 de novembro de 2009
Respostas 0
Participantes 1