add prefix command (draft)
This commit is contained in:
parent
53cd72e281
commit
8f4b254377
2 changed files with 34 additions and 8 deletions
12
arbre.c
12
arbre.c
|
@ -29,10 +29,18 @@ void convertisseurListeEnArbre(Liste *liste) {
|
|||
}
|
||||
}
|
||||
|
||||
void encode(FILE *entree, FILE *sortie) {
|
||||
void prefix(Arbre arbre, int codeActuel, int longueur, Lettre *lettresListe, int *i, int longueurTotale) {
|
||||
if (arbre->lettre != '\0') {
|
||||
lettresListe[*i].lettre = arbre->lettre;
|
||||
lettresListe[*i].code = codeActuel;
|
||||
lettresListe[*i].longueur = longueur;
|
||||
}
|
||||
}
|
||||
|
||||
void compression(FILE *entree, FILE *sortie) {
|
||||
|
||||
}
|
||||
|
||||
void decode(FILE *entree, FILE *sortie) {
|
||||
void decompression(FILE *entree, FILE *sortie) {
|
||||
|
||||
}
|
||||
|
|
30
arbre.h
30
arbre.h
|
@ -6,16 +6,34 @@
|
|||
|
||||
#include "liste.h"
|
||||
|
||||
// Définition de l'Arbre
|
||||
// Définition de l'Arbre.
|
||||
typedef Cellule *Arbre;
|
||||
|
||||
// Convertis une liste en Arbre
|
||||
// Définition d'une lettre/caractère au sens large
|
||||
typedef struct lettre {
|
||||
char lettre; // la lettre / caractère
|
||||
int code; // code binaire
|
||||
int longueur; // longueur du code
|
||||
} Lettre;
|
||||
|
||||
// Convertis une liste en Arbre.
|
||||
void convertisseurListeEnArbre(Liste *liste);
|
||||
|
||||
// Encode un fichier
|
||||
void encode(FILE *entree, FILE *sortie);
|
||||
// Encode un fichier.
|
||||
void compression(FILE *entree, FILE *sortie);
|
||||
|
||||
// Décode un fichier
|
||||
void decode(FILE *entree, FILE *sortie);
|
||||
// Décode un fichier.
|
||||
void decompression(FILE *entree, FILE *sortie);
|
||||
|
||||
/*
|
||||
Ajoute les valeurs des lettres dans l'arbre.
|
||||
-> `arbre` l'arbre binaire de huffman
|
||||
-> `codeActuel` monte progresssivement quand on parcours l'arbre et c'est la valeur assigné aux noeuds
|
||||
-> `longueur` la profondeur du noeud dans l'arbre
|
||||
-> `lettresListe` notre liste de lettre
|
||||
-> `i` nous permet de se balader dans la liste `lettresListe` (c'est là où l'on se trouve)
|
||||
-> `longueurTotale` est la longueur totale du code en sortie en bits
|
||||
*/
|
||||
void prefix(Arbre arbre, int codeActuel, int longueur, Lettre *lettresListe, int *i, int longueurTotale);
|
||||
|
||||
#endif
|
||||
|
|
Reference in a new issue