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 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 14 déc. 2016 à 13:48
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 14 déc. 2016 à 13:48
A voir également:
- Codage Huffman - Affichage d'un tableau des caractères
- Codage ascii - Guide
- Tableau croisé dynamique - Guide
- Comment faire un tableau - Guide
- Codage binaire - Guide
- Caractères spéciaux clavier azerty - Guide
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
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"