[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fwd: Re: HELP ME!




>DEA,
>
>BRIGADÃO PELA SUA AJUDA, MAS, eu continuo meio perdido.
>Algumas coisas que não entendi:
>
>1 - Porque o vetor count tem 520 posições?
pois existe no maximo 255 caracteres e lembra que quando eu ajunto dois 
caracteres lembra que eu faco 256+n_chars sem repeticoes pois o heap 
armazena eles sem repeticoes 

>2 - porque code[k]=3 representa 11? De onde vem isso?
pois 3 em binari é 11, assim como o 10 é 1010.

>3 - a função pqdownheap? Não entendi o que ela faz.
imagine o vetor heap como sendo uma arvore, onde o na posicao 1 é a 
raiz, a 2 é seu f_esq e o tres o seu f_dir, e o 4 = raiz->f_esq->f_esq e 
o 5 = raiz->f_esq->f_dir, ....
Agora voce quer colocar o caracter com menos ocorrencias na raiz pois 
sao os dois com menor ocorrencia que vc quer.Entao vc concerta a 
subarvore na posicao N/2 pois se vc parar para observar este e o ultimo 
no que pode ter filho , e vai consertando ate colocar o menor na raiz. 
Pega entao o ultimo elemento do vetor e poe na primeira, sem esquecer de 
antes escrever numa variavel o de menor ocorrencia. E faz a mesma coisa,  
e depois junta(soma) as ocorrencias dos 2 menores 

>4 - Onde está a compactação?
essa é a compactacao e codigo de cada letra e daquele jeito que te 
expliquei agora vc pode juntar de oito em oito 0's e 1's e que 
representa um caracter

>5 - Le o texto e Depois coloca num vetor: que vetor, no caso?
na verdade é o espaço alocado que o ponteiro texto aponta
>
>Obrigado!
>
>Daniel Cukier
>-----Mensagem original-----
>De: Andrea Suman <deinha16@hotmail.com>
>Para: dcukier@ppp1.colband.com.br <dcukier@ppp1.colband.com.br>
>Data: Quarta-feira, 9 de Dezembro de 1998 21:41
>Assunto: Re: HELP ME!
>
>
>>
>>
>>Daniel,
>>Retornando a sua dúvida,vou tentar explicar o huff.
>>Resumindo, o huff le um texto,caracter a caracter e vai fazendo uma
>>lista ligada.Depois coloca num vetor.Então ele usa dois vetores, o 
count
>>que armazena as ocorrencias na posicao do codigo ASCII do caracter, e 
o
>>heap que armazena o numero dos caracteres que ocorreram, nas posicoes
>>1..n_chars.Agora é preciso pegar os dois menores e utiliza-se o
>>heap.Fazendo isso, soma-se a ocorrencia dos dois menores
>>e coloca no count na posicao 256+tamanho do vetor texto ja descontado 
de
>>um, pois os dois se uniram num só elemento.E faz uma alteracao no 
vetor
>>Dad que vai servir pra depois codificar cada caracter, e assim ate
>>acabar todos os caracteres.
>>Imaginando que os caracteres estao numa arvore que tem nos verdadeiros 
e
>>nos que representam a uniao dos dois.A codificacao é feita com 1 para
>>f_dir e 0 para f_esq.
>>E num passe de magica naquele trecho do huff, o code e o len armazenam
>>os codigos Por Ex: se code[k]=3 (que representa 11) e len[k]=4 entao o
>>codigo é 0011 e isso representa olhando da raiz :
>>raiz->f_esq->f_esq->f_dir->f_dir
>>E depois ele imprime e para isso trabalha com bits, que por sinal pedi
>>explicacao de como é feito a manipulacao dos bits, pois não sabia.
>>
>>Espero ter podido ajudar
>>
>>[]'s DEA
>>
>>______________________________________________________
>>Get Your Private, Free Email at http://www.hotmail.com
>>
>
>


______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com