Codage Huffman - Affichage d'un tableau des caractères
Fermé
zibrata
Messages postés
37
Date d'inscription
samedi 12 novembre 2011
Statut
Membre
Dernière intervention
13 décembre 2016
-
13 déc. 2016 à 13:22
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 14 déc. 2016 à 13:48
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 14 déc. 2016 à 13:48
A voir également:
- Codage Huffman - Affichage d'un tableau des caractères
- Tableau croisé dynamique - Guide
- Codage ascii - Guide
- Codage binaire - Guide
- Caractères spéciaux symboles clavier - Guide
- Tableau word - Guide
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
14 déc. 2016 à 10:42
14 déc. 2016 à 10:42
Salut zibrata,
Je n'ai jamais fait d'implémentation de l'algorithme d'Huffman, mais comme personne ne répond, je te donne quelques indications qui me viennent à l'esprit.
Ma compréhension est que tu dois ici faire une première passe, puisque tu dis devoir décompter les fréquences correspondant exactement à ton texte.
Si je devais le faire, je le ferais avec un tableau de 256
Ensuite, tu te sers du contenu du tableau pour construire ton arbre, en utilisant les pointeurs vers les entrées du tableau associatif qui contiennent ton décompte...
cela paraît pas mal... non ? :-)
Sinon, avec ton code, tu ne vas lire qu'une ligne de ton fichier.. car
http://www.cplusplus.com/reference/cstdio/fgets/
Dal
Je n'ai jamais fait d'implémentation de l'algorithme d'Huffman, mais comme personne ne répond, je te donne quelques indications qui me viennent à l'esprit.
Ma compréhension est que tu dois ici faire une première passe, puisque tu dis devoir décompter les fréquences correspondant exactement à ton texte.
Si je devais le faire, je le ferais avec un tableau de 256
struct Noeud(256 étant sur ma machine, la valeur de 2 élevé à la puissance
CHAR_BITtel que définie dans
limits.hsur mon implémentation), initialisé à 0, que tu utilises comme un tableau associatif, en utilisant en index le char à décompter.
Ensuite, tu te sers du contenu du tableau pour construire ton arbre, en utilisant les pointeurs vers les entrées du tableau associatif qui contiennent ton décompte...
cela paraît pas mal... non ? :-)
Sinon, avec ton code, tu ne vas lire qu'une ligne de ton fichier.. car
fgets()va s'arrêter au premier retour à la ligne trouvé...
http://www.cplusplus.com/reference/cstdio/fgets/
Dal
Modifié par [Dal] le 14/12/2016 à 14:02
en créant ta "priority queue"