Voila , le code essaye de compresser les donnees selon l'algorithme de huffman en essayant de construire l'arbre du bas-en-haut (buttom-up) pour eviter toute recursivite.
la table des frequences est organisé en Heap (queue prioritaires) c'est a dire les carracteres les moins frequents sont en tete du tableau et sont fusionees entre eux pour donner un noeud pere et ainsi de suite jusqu'a ce que il ne reste qu'un seul noeud racine (root).
la table est ensuite transferer sur fichiers au format big-endian , dont voici le format du fichiers compresser:
**magic : 2 octect ( 'H' 'F')
**taille de la table : 4 octet
**index du noeud racine dans la table: 2 octet
** donnees compresser : taille variable
la qualite de compression est moyenne sinon mediocre , le meilleur taux de compression sont obtenus sur des fichers text , n'essayer pas de compresser des fichiers deja compresse , ca ne fait qu'augmenter encore la taille , ou de compresser des fichiers voulumineux , a la limite 10mega , puisque le programme essayera d'allouer de la memoire pour la taille totale du fichiers.
le programme ajoute l'extension ".huff" pour les fichiers compresses :
test.txt ==> test.txt.huff
il nya aucune suppression des donnees.