Nettoyage des anciens en-têtes
This commit is contained in:
parent
d647fc5452
commit
07b9a19930
|
@ -1,26 +0,0 @@
|
||||||
#ifndef __IN303_COMMON_H__
|
|
||||||
#define __IN303_COMMON_H__
|
|
||||||
|
|
||||||
#define TRUE 1
|
|
||||||
#define FALSE 0
|
|
||||||
#define NUM_CHARS 256
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Écrire sur la sortie standard à la manière de printf,
|
|
||||||
* seulement si le mode verbeux est actif
|
|
||||||
*/
|
|
||||||
void printVerbose(const char* format, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Active ou désactive l'affichage des messages verbeux
|
|
||||||
* (mode verbeux). Si activé, `printVerbose` écrit sur
|
|
||||||
* la sortie standard. Sinon, `printVerbose` n'a pas d'effet
|
|
||||||
*/
|
|
||||||
void setVerbose(int);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renvoie l'état du mode verbeux
|
|
||||||
*/
|
|
||||||
int isVerbose();
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,8 +0,0 @@
|
||||||
#ifndef __IN303_COMPRESS_H__
|
|
||||||
#define __IN303_COMPRESS_H__
|
|
||||||
|
|
||||||
#include "huftree.h"
|
|
||||||
|
|
||||||
void compress(const char* filepath);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,25 +0,0 @@
|
||||||
#ifndef __IN303_DISPLAY_H__
|
|
||||||
#define __IN303_DISPLAY_H__
|
|
||||||
|
|
||||||
#include "huftree.h"
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Afficher sur la sortie standard l'arbre passé
|
|
||||||
* en paramètre
|
|
||||||
*/
|
|
||||||
void printTree(HufTree tree);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Afficher sur la sortie standard le tableau associant les caractères
|
|
||||||
* à leur fréquence d'apparition passé en argument
|
|
||||||
*/
|
|
||||||
void printFrequenciesTable(double*, size_t);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Afficher sur la sortie standard le tableau associant les caractères
|
|
||||||
* à leur étiquette passé en argument
|
|
||||||
*/
|
|
||||||
void printLabelsTable(char**, size_t);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,70 +0,0 @@
|
||||||
#ifndef __IN303_HUFTREE_H__
|
|
||||||
#define __IN303_HUFTREE_H__
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Représente un des sommets d'un arbre de Huffman
|
|
||||||
*/
|
|
||||||
typedef struct HufVertex HufVertex;
|
|
||||||
struct HufVertex {
|
|
||||||
// Indique la fréquence d'apparition de la lettre du sommet
|
|
||||||
// dans le corpus original, ou bien la somme des fréquences
|
|
||||||
// de ses enfants (si ce n'est pas une feuille)
|
|
||||||
double frequency;
|
|
||||||
|
|
||||||
// Caractère du corpus original associé à ce sommet. Uniquement
|
|
||||||
// valable pour les feuilles. Pour les autres sommets, la valeur
|
|
||||||
// de (character) n'est pas garantie
|
|
||||||
char character;
|
|
||||||
|
|
||||||
// Pointeurs vers les deux enfants de ce sommet. Ils valent tous
|
|
||||||
// deux NULL si le sommet est une feuille. À noter qu'un sommet
|
|
||||||
// a toujours 0 ou 2 enfants car un arbre de Huffman est binaire
|
|
||||||
HufVertex* child_l;
|
|
||||||
HufVertex* child_r;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Représente un arbre de Huffman
|
|
||||||
*/
|
|
||||||
typedef struct HufTree HufTree;
|
|
||||||
struct HufTree {
|
|
||||||
// Pointeur sur la racine de l'arbre
|
|
||||||
HufVertex* root;
|
|
||||||
|
|
||||||
// Quantité de sommets dans l'arbre
|
|
||||||
size_t size;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Construire un arbre de Huffman basé sur les fréquences
|
|
||||||
* de caractères passées dans `frequencies`
|
|
||||||
*
|
|
||||||
* (résultat à libérer avec `freeTree`)
|
|
||||||
*/
|
|
||||||
HufTree createTree(double* frequencies);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Libérer la mémoire occupée par un arbre de Huffman
|
|
||||||
* généré par la fonction `createTree`
|
|
||||||
*/
|
|
||||||
void freeTree(HufTree tree);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Associer à chaque feuille de l'arbre une étiquette unique basée
|
|
||||||
* sur sa position dans l'arbre. Aucune étiquette n'est ainsi préfixe
|
|
||||||
* d'une autre. Le tableau renvoyé associe chaque caractère ASCII
|
|
||||||
* à son préfixe, ou à NULL s'il n'est pas présent dans l'arbre
|
|
||||||
*
|
|
||||||
* (résultat à libérer avec `freeTreeLabels`)
|
|
||||||
*/
|
|
||||||
char** createTreeLabels(HufTree tree);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Libérer la mémoire occupée par un tableau d'étiquettes renvoyé
|
|
||||||
* par la fonction `labelTree`
|
|
||||||
*/
|
|
||||||
void freeTreeLabels(char** labels);
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue