Listing du header huffman.h

#ifndef _HUFFMAN_H_ /* On vérifie si le fichier n’a pas déja été inclus */
#define _HUFFMAN_H_

#ifndef MAX /* Vérification que MAX est inutilisée */
  #define MAX 256
#endif
/* MAX */

/* Arbre de Huffman*/
struct arbre_huff {
  unsigned char c; /* Caractère initial */
  unsigned int occurence; /* Nombre d’occurences dans le fichier */
  int code; /* Codage dans l’arbre */
  int bits; /* Nombre de bits sur lesquels est codée le caractère */
  struct arbre_huff *gauche, *droite; /* Lien vers les noeuds soivants */
};

/* Utilisé pour la création de l’arbre */
struct temp_huff {
  struct arbre_huff *noeud[MAX]; /* Lien vers les noeuds */
  int restant; /* Nombres de structures restante */
};

/* Informations necessaires à l’encodage du fihier */
struct dictionaire {
  int code; /* Codage de Huffman du caractère */
  unsigned int bits; /* Nombre de bits du codage */
};

int menu(void); /* Affichage du menu */
void compression(int choix);
void decompression(int choix);
void copier_fichier(char nomfich[]);
void compter_occ(unsigned int *carac, char nom[]); /* Compte les occurences pour la création du fichier frequence.dat */
void creer_freq(unsigned int arbreN[], char nom[]); /* Enregistrement dans le fichier frequence.dat */
struct arbre_huff * creer_arbre(unsigned int carac[]);
void ajouter_temp_huff(struct temp_huff *tmp, struct arbre_huff *arbre);
struct arbre_huff * nouveau_noeud(struct temp_huff *tmp);
void suppr_arbre (struct arbre_huff **arbre); /* Suppression d’un arbre binaire */
void creer_code(struct arbre_huff *arbre, int code, int niveau, struct dictionaire dico[]);
void ecrire_codage(struct dictionaire dico[], char nom[]);
unsigned int encodage(struct dictionaire dico[], char nom[]);
void ecrire_fichier(unsigned int carac[], char nom[], unsigned short int nbfich, unsigned int taille, short int mark);
int lire_index(unsigned int carac[], char nom[], int choix, short int *nbfich, short int mark);
void extraire_nom(char nom[], struct arbre_huff *arbre, int choix, int taille, unsigned int taille_fich, short int mark);
int decodage(char nom[],char *nomfich, struct arbre_huff *arbre, int taille, short int mark);
struct arbre_huff * convert_huff(struct arbre_huff *arbre, unsigned int buffer,unsigned int buffer_taille, unsigned int niveau);

#endif /* Fin du ifndef _HUFFMAN_H */

Laisser un commentaire