diff --git a/include/common.h b/include/common.h deleted file mode 100644 index b155b16..0000000 --- a/include/common.h +++ /dev/null @@ -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 diff --git a/include/compress.h b/include/compress.h deleted file mode 100644 index 70bfebd..0000000 --- a/include/compress.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __IN303_COMPRESS_H__ -#define __IN303_COMPRESS_H__ - -#include "huftree.h" - -void compress(const char* filepath); - -#endif diff --git a/include/display.h b/include/display.h deleted file mode 100644 index dcbd4bb..0000000 --- a/include/display.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __IN303_DISPLAY_H__ -#define __IN303_DISPLAY_H__ - -#include "huftree.h" -#include - -/** - * 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 diff --git a/include/huftree.h b/include/huftree.h deleted file mode 100644 index 3ffef16..0000000 --- a/include/huftree.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __IN303_HUFTREE_H__ -#define __IN303_HUFTREE_H__ - -#include - -/** - * 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