Correction d'un bug avec le fichier tous les caractères

(Stockage du nom avec un entier au lieu d'un char)
This commit is contained in:
Mattéo Delabre 2016-10-27 18:47:08 +02:00
parent 07b9a19930
commit 69f64a3fc5
3 changed files with 7 additions and 7 deletions

View File

@ -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

View File

@ -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));
}
}

View File

@ -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;
}
}