diff --git a/inc/huftree.h b/inc/huftree.h index a695ef5..bff35e6 100644 --- a/inc/huftree.h +++ b/inc/huftree.h @@ -16,8 +16,8 @@ struct HufVertex { // 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; + // de `name` n'est pas garantie + int name; // Pointeurs vers les deux enfants de ce sommet. Ils valent tous // deux NULL si le sommet est une feuille. À noter qu'un sommet diff --git a/src/display.c b/src/display.c index b664cba..3f71249 100644 --- a/src/display.c +++ b/src/display.c @@ -58,7 +58,7 @@ void _printVertex(HufVertex vert, wchar_t* buffer, int length) { } else { // Affichage d'une feuille de l'arbre, correspondant // à un caractère du corpus - printf("%c\n", _safeChar(vert.character)); + printf("%c\n", _safeChar(vert.name)); } } diff --git a/src/huftree.c b/src/huftree.c index 736f9db..0d769e1 100644 --- a/src/huftree.c +++ b/src/huftree.c @@ -54,12 +54,12 @@ HufTree createTree(double* frequencies) { HufVertex** remaining = malloc(leaves_count * sizeof(*remaining)); size_t next_index = 0; - for (size_t i = 0; i < NUM_CHARS; i++) { + for (int i = 0; i < NUM_CHARS; i++) { if (frequencies[i] > 0) { remaining[next_index] = malloc(sizeof(*remaining[next_index])); + remaining[next_index]->name = i; remaining[next_index]->frequency = frequencies[i]; - remaining[next_index]->character = (char) i; remaining[next_index]->child_l = NULL; remaining[next_index]->child_r = NULL; @@ -174,7 +174,7 @@ void _writeVertex(HufVertex vertex, Buffer* buffer) { pushToBuffer( // Écriture du n-ième bit du caractère du fils // dans le tampon - (vertex.character & (1 << i)) != 0, + (vertex.name & (1 << i)) != 0, buffer ); } @@ -245,7 +245,7 @@ void _labelVertex(HufVertex vertex, char** labels, char* label, size_t length) { } else { // Si le sommet est une feuille, étiquetage du caractère // associé avec l'étiquette passée en paramètre. Fin de la récursion - labels[(size_t) vertex.character] = label; + labels[vertex.name] = label; } }