Correction de la position des étoiles de pointeurs

This commit is contained in:
Mattéo Delabre 2016-10-22 10:56:13 +02:00
parent f7378d4707
commit c0de61b95a
8 changed files with 24 additions and 23 deletions

View File

@ -9,7 +9,7 @@
* Écrire sur la sortie standard à la manière de printf,
* seulement si le mode verbeux est actif
*/
void printVerbose(const char *format, ...);
void printVerbose(const char* format, ...);
/**
* Active ou désactive l'affichage des messages verbeux

View File

@ -3,6 +3,6 @@
#include "huftree.h"
void compress(const char *filepath);
void compress(const char* filepath);
#endif

View File

@ -21,7 +21,8 @@ struct HufVertex {
// 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, *child_r;
HufVertex* child_l;
HufVertex* child_r;
};
/**
@ -30,7 +31,7 @@ struct HufVertex {
typedef struct HufTree HufTree;
struct HufTree {
// Pointeur sur la racine de l'arbre
HufVertex *root;
HufVertex* root;
// Quantité de sommets dans l'arbre
size_t size;
@ -42,7 +43,7 @@ struct HufTree {
*
* (résultat à libérer avec `freeTree`)
*/
HufTree createTree(double *frequencies);
HufTree createTree(double* frequencies);
/**
* Libérer la mémoire occupée par un arbre de Huffman

View File

@ -4,7 +4,7 @@
static int is_verbose = FALSE;
void printVerbose(const char *format, ...) {
void printVerbose(const char* format, ...) {
if (is_verbose) {
va_list args_list;

View File

@ -14,8 +14,8 @@
*/
static double* _createFrequencies(const char*);
double* _createFrequencies(const char *filepath) {
double *frequencies = malloc(NUM_CHARS * sizeof(*frequencies));
double* _createFrequencies(const char* filepath) {
double* frequencies = malloc(NUM_CHARS * sizeof(*frequencies));
int totalChars = 0;
for (size_t i = 0; i < NUM_CHARS; i++) {
@ -25,7 +25,7 @@ double* _createFrequencies(const char *filepath) {
// Ouverture du fichier en lecture seule, et comptage
// des occurences de chaque caractère ASCII ainsi que
// du nombre total de caractères
FILE *file = fopen(filepath, "r");
FILE* file = fopen(filepath, "r");
if (file == NULL) {
fprintf(
@ -53,9 +53,9 @@ double* _createFrequencies(const char *filepath) {
return frequencies;
}
void compress(const char *filepath) {
void compress(const char* filepath) {
printVerbose("Calcul des fréquences d'apparition de chaque caractère\n");
double *frequencies = _createFrequencies(filepath);
double* frequencies = _createFrequencies(filepath);
if (isVerbose()) {
printFrequenciesTable(frequencies, NUM_CHARS);

View File

@ -25,12 +25,12 @@ static char _safeChar(char input);
void printTree(HufTree tree) {
// Allocation d'un tampon suffisamment grand pour contenir
// les indentations des sommets les plus profonds de l'arbre
wchar_t *buffer = malloc(_maxDepth(*tree.root) * 4 * sizeof(*buffer));
wchar_t* buffer = malloc(_maxDepth(*tree.root) * 4 * sizeof(*buffer));
_printVertex(*tree.root, buffer, 0);
free(buffer);
}
void _printVertex(HufVertex vert, wchar_t *buffer, int length) {
void _printVertex(HufVertex vert, wchar_t* buffer, int length) {
if (vert.child_l != NULL && vert.child_r != NULL) {
// Affichage d'un sommet avec enfants, on montre
// la probabilité somme des enfants

View File

@ -44,7 +44,7 @@ HufTree createTree(double* frequencies) {
// Allocation d'un tableau de `leaves_count` pointeurs vers sommets.
// Initialement, ce tableau contient les feuilles du futur arbre.
// Chaque feuille correspond à un caractère du corpus original
HufVertex **remaining = malloc(leaves_count * sizeof(*remaining));
HufVertex** remaining = malloc(leaves_count * sizeof(*remaining));
size_t next_index = 0;
for (size_t i = 0; i < NUM_CHARS; i++) {
@ -77,11 +77,11 @@ HufTree createTree(double* frequencies) {
&min_vert_index, &sec_min_vert_index
);
HufVertex *min_vert = remaining[min_vert_index];
HufVertex *sec_min_vert = remaining[sec_min_vert_index];
HufVertex* min_vert = remaining[min_vert_index];
HufVertex* sec_min_vert = remaining[sec_min_vert_index];
// Création d'un sommet parent P pour A et B
HufVertex *parent = malloc(sizeof(*parent));
HufVertex* parent = malloc(sizeof(*parent));
parent->frequency = min_vert->frequency + sec_min_vert->frequency;
parent->child_l = min_vert;
@ -110,8 +110,8 @@ HufTree createTree(double* frequencies) {
}
void _findMinimalVertices(
HufVertex **vertices, size_t size,
size_t *min_index, size_t *sec_min_index
HufVertex** vertices, size_t size,
size_t* min_index, size_t* sec_min_index
) {
// Initialisation de telle sorte qu'initialement
// on ait `freq(min_index) < freq(sec_min_index)`
@ -144,7 +144,7 @@ void freeTree(HufTree tree) {
tree.root = NULL;
}
void _freeTreeVertex(HufVertex *vert) {
void _freeTreeVertex(HufVertex* vert) {
if (vert->child_l != NULL && vert->child_r != NULL) {
_freeTreeVertex(vert->child_l);
_freeTreeVertex(vert->child_r);

View File

@ -24,15 +24,15 @@ static struct argp_option options[] = {
*/
typedef struct Args {
int verbose;
char **files;
char** files;
} Args;
/**
* Fonction de rappel pour interpréter les arguments
* passés au programme
*/
static error_t parse_opt(int key, char *arg, struct argp_state *state) {
Args *args = state->input;
static error_t parse_opt(int key, char* arg, struct argp_state* state) {
Args* args = state->input;
switch (key) {
case 'V':