HUFFMAN dans quoi coder la correspondance symbole - code ?

HUFFMAN dans quoi coder la correspondance symbole - code ? - C++ - Programmation

Marsh Posté le 27-04-2008 à 20:06:06    

Voila, j'ai reussi a implementer (non sans mal!) un arbre de huffmann en c++, il affiche pour l'instant a la console chaque caractere et son codage binaire a cote par parcours de l'arbre.
Maintenant j'aimerais pouvoir quand meme admirer ce que fait mon programme, cad coder un fichier texte, puis eventuellement.... le decoder par la suite :)
 
Je ne sais pas vraiment de quelle maniere proceder.
Je pensais faire une structure huff a 2 champs huff.char et huff.code
seulement je ne sais pas en quel type je dois mettre huff.code, puisque si je le mets en int je perds de la place et donc un peu l'interet de la compression.
 
Si quelqu'un pouvait me mettre sur la bonne voie ca serait bien sympa.
 
Merci de vos conseils
 
a++
Opti


---------------
Cherche du boulot sur Paris comme ingé sécu - cryptographie
Reply

Marsh Posté le 27-04-2008 à 20:06:06   

Reply

Marsh Posté le 28-04-2008 à 18:24:11    

Bon, apparamment ce n'est pas comme ca qu'on procede.
Il faut ecrire l'arbre dans le fichier encode en tant que header.
On parcourt l'arbre depuis la racine. On ecrit un "0" a chaque node rencontre et le code de la feuille sur un nombre predefini de bits (avec paddage a 0 pour les codes les plus courts) on eccrit dabord le code du fils gauche puis celui du fils droit.
Pour decoder on reconstitue l'arbre, et il ne reste plus qu'a lire le fichier encode (sans le header!) et a parcourir l'arbre.
 
L'exemple cite ici
http://www.siggraph.org/education/ [...] orial.html  
n'a qu'un seul node a gauche, il n'est donc pas un tres bon exemple car il "evite" la difficulte. quelqu'un serait il capable de me donner le codage du grand arbre? (je veux dire tel qu'il doit etre ecrit dans le header)


Message édité par optimisteo le 28-04-2008 à 18:44:07

---------------
Cherche du boulot sur Paris comme ingé sécu - cryptographie
Reply

Marsh Posté le 16-05-2008 à 18:20:02    

non?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed