Bonjour, je suis en train de faire un mini projet ou l'on doit faire un pseudo code de huffmann(pour compresser un fichier)==>
On doit lire le fichier txt en parametre, faire un tableau d'occurence des lettres trouvées, les classer par ordre d'apparition :
Mn fichier :
SALUUTTTT
tab:
T 4 U 2 S 1 ....
puis ensuite créer un code pour chaque lettre :
T= 1 U= 01 S= 001.....
le code crée est en fait un code ou on rajoute un zero a chaque lettre, le principe est que les lettres les plus présentes seront codé sur 1 bit alors que celles moins presentes seront codé sur plusieurs bits mais on s'en fout car elles sont pas tres presentes.
L'interet de ce programme est tt simplement de faire du C, car ce pseudo huffman sera efficace dans le seul cas ou on a bcp bcp d'occurences de quelques lettres et quelques occurence des autres.
Pour l'instant, j ai mon tab d'occurence en memoire, j ai un tableau trié a 2 dimensions contenant seulement des cases ou l'occurence est differenete de 0:
H B s
13 5 2 ................
Maintenant mon pb c'est pour encoder mon fichier avec mon nouveau code :
J'avais crée un fichier txt contenant mon code pour chaque lettre mais c'est galere a utiliser,
la je cherche tout d'abord a generer mon code dans un tab en memoire, mais je trouve pas de solution pour concatenter un 0 a chaque fois??
Ensuite, il faut coder mon fichier en ecrivant des bits et non des octets bien entendu pour gagner de la place,
Un ami m'a parlé des champs de bits ou je pourrai ecrire une voire plusieurs lettres dans une structure de bit, mais je ne vois pas comment gerer une lettre qui aurait pour code 0000000000000000000001 par ex.
De plus, avec quelle fonction ecrireriez vous une struct pareil(pour que tte la struct n'occupe qu'un octet!)
Merci d'avance.