harmonize variable names

This commit is contained in:
Mylloon 2021-12-24 19:12:09 +01:00
parent b745df67f4
commit 7c3e0c1b30
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 16 additions and 17 deletions

27
arbre.c
View file

@ -33,20 +33,20 @@ int listeVersArbre(Liste *liste) {
return nombreLettresDansFichier; return nombreLettresDansFichier;
} }
void assignationCode(Arbre arbre, int codeActuel, int longueur, Entete *lettresListe, int *i, int *longueurTotale) { void assignationCode(Arbre arbre, int codeActuel, int longueur, Entete *enteteListe, int *i, int *longueurTotale) {
if (arbre->lettre != '\0') { // si c'est une lettre qu'on regarde if (arbre->lettre != '\0') { // si c'est une lettre qu'on regarde
lettresListe[*i].lettre = arbre->lettre; // ajout de la lettre enteteListe[*i].lettre = arbre->lettre; // ajout de la lettre
lettresListe[*i].code = codeActuel; // assignation de son code enteteListe[*i].code = codeActuel; // assignation de son code
lettresListe[*i].longueur = longueur; // longueur du code (ex: 1001 est de taille 4) enteteListe[*i].longueur = longueur; // longueur du code (ex: 1001 est de taille 4)
*i += 1; // on incrémente de 1 *i += 1; // on incrémente de 1
*longueurTotale += longueur * arbre->frequence; // incrémente la taille du code à la taille totale finale *longueurTotale += longueur * arbre->frequence; // incrémente la taille du code à la taille totale finale
} else { // si c'est une "mini-racine" } else { // si c'est une "mini-racine"
longueur++; longueur++;
codeActuel <<= 1; // décalage de bit vers la gauche codeActuel <<= 1; // décalage de bit vers la gauche
assignationCode(arbre->gauche, codeActuel, longueur, lettresListe, i, longueurTotale); // appel récursif arbre de gauche assignationCode(arbre->gauche, codeActuel, longueur, enteteListe, i, longueurTotale); // appel récursif arbre de gauche
codeActuel |= 1; // copie de bit si nécessaire (porte ou) codeActuel |= 1; // copie de bit si nécessaire (porte ou)
assignationCode(arbre->droite, codeActuel, longueur, lettresListe, i, longueurTotale); // appel récursif arbre de droite assignationCode(arbre->droite, codeActuel, longueur, enteteListe, i, longueurTotale); // appel récursif arbre de droite
} }
} }
@ -61,16 +61,16 @@ void freeArbre(Arbre arbre) {
} }
Entete *arbreVersListe(Arbre arbre, int taille, int *tailleTotale) { Entete *arbreVersListe(Arbre arbre, int taille, int *tailleTotale) {
Entete *lettres; Entete *enteteListe;
if ((lettres = (Entete*)malloc(taille * sizeof(Entete))) == NULL) { // on alloue la liste qui va contenir nos caractères if ((enteteListe = (Entete*)malloc(taille * sizeof(Entete))) == NULL) { // on alloue la liste qui va contenir nos caractères
printf("Impossible d'allouer de la mémoire supplémentaire (arbreVersListe).\n"); // gestion de l'erreur printf("Impossible d'allouer de la mémoire supplémentaire (arbreVersListe).\n"); // gestion de l'erreur
exit(1); exit(1);
} }
int i = 0; // initialisation de `i` au début car `assignationCode` est récursif int i = 0; // initialisation de `i` au début car `assignationCode` est récursif
assignationCode(arbre, '\0', 0, lettres, &i, tailleTotale); // on commence avec une racine nulle et une taille de 0 assignationCode(arbre, '\0', 0, enteteListe, &i, tailleTotale); // on commence avec une racine nulle et une taille de 0
freeArbre(arbre); freeArbre(arbre);
return lettres; return enteteListe;
} }
Entete *fichierVersListe(FILE *fichier, int *nombreLettresDansFichier, int *tailleTotale) { Entete *fichierVersListe(FILE *fichier, int *nombreLettresDansFichier, int *tailleTotale) {
@ -89,16 +89,15 @@ Entete *fichierVersListe(FILE *fichier, int *nombreLettresDansFichier, int *tail
} }
void compression(FILE *entree, FILE *sortie) { void compression(FILE *entree, FILE *sortie) {
/* fclose temporaire pour supprimer les warnings */
int nombreLettresDansFichier; // initialisé par `listeVersArbre` int nombreLettresDansFichier; // initialisé par `listeVersArbre`
int tailleTotale = 0; // taille totale en en bit du fichier en sortie int tailleTotale = 0; // taille totale en en bit du fichier en sortie
Entete *entete = fichierVersListe(entree, &nombreLettresDansFichier, &tailleTotale); Entete *enteteListe = fichierVersListe(entree, &nombreLettresDansFichier, &tailleTotale);
// On écrit l'entête du fichier avec la table complète des correspondances // On écrit l'entête du fichier avec la table complète des correspondances
enteteVersFichier(entete, nombreLettresDansFichier, tailleTotale, sortie); enteteVersFichier(enteteListe, nombreLettresDansFichier, tailleTotale, sortie);
// On écrit les données huffman-isée dans le fichier // On écrit les données huffman-isée dans le fichier
huffmanVersFichier(entree, sortie, entete, nombreLettresDansFichier); huffmanVersFichier(entree, sortie, enteteListe, nombreLettresDansFichier);
} }
void decompression(FILE *entree, FILE *sortie) { void decompression(FILE *entree, FILE *sortie) {

View file

@ -37,7 +37,7 @@ void decompression(FILE *entree, FILE *sortie);
J'essaie de favoriser l'utilisation de pointeur pour éviter de recopier plus fois la même chose en mémoire. J'essaie de favoriser l'utilisation de pointeur pour éviter de recopier plus fois la même chose en mémoire.
Parcours prefixé de l'arbre. Parcours prefixé de l'arbre.
*/ */
void assignationCode(Arbre arbre, int codeActuel, int longueur, Entete *lettresListe, int *i, int *longueurTotale); void assignationCode(Arbre arbre, int codeActuel, int longueur, Entete *enteteListe, int *i, int *longueurTotale);
// Convertis un arbre (struct Arbre/Liste) en liste (struct Entete). // Convertis un arbre (struct Arbre/Liste) en liste (struct Entete).
Entete *arbreVersListe(Arbre arbre, int taille, int *tailleTotale); Entete *arbreVersListe(Arbre arbre, int taille, int *tailleTotale);
@ -46,9 +46,9 @@ Entete *arbreVersListe(Arbre arbre, int taille, int *tailleTotale);
Entete *fichierVersListe(FILE *fichier, int *nombreLettresDansFichier, int *tailleTotale); Entete *fichierVersListe(FILE *fichier, int *nombreLettresDansFichier, int *tailleTotale);
// Écrit l'entête avec la table de Huffman dans le fichier. // Écrit l'entête avec la table de Huffman dans le fichier.
void enteteVersFichier(Entete *lettres, int nombreLettresDansFichier, int longueurTotale, FILE *fichier); void enteteVersFichier(Entete *enteteListe, int nombreLettresDansFichier, int longueurTotale, FILE *fichier);
// Écrit les données une fois traduite après l'algorithme de Huffman dans le fichier de sortie. // Écrit les données une fois traduite après l'algorithme de Huffman dans le fichier de sortie.
void huffmanVersFichier(FILE *entree, FILE *sortie, Entete *listeLettres, int nombreLettresDansFichier); void huffmanVersFichier(FILE *entree, FILE *sortie, Entete *enteteListe, int nombreLettresDansFichier);
#endif #endif