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:
parent
07b9a19930
commit
69f64a3fc5
|
@ -16,8 +16,8 @@ struct HufVertex {
|
||||||
|
|
||||||
// Caractère du corpus original associé à ce sommet. Uniquement
|
// Caractère du corpus original associé à ce sommet. Uniquement
|
||||||
// valable pour les feuilles. Pour les autres sommets, la valeur
|
// valable pour les feuilles. Pour les autres sommets, la valeur
|
||||||
// de (character) n'est pas garantie
|
// de `name` n'est pas garantie
|
||||||
char character;
|
int name;
|
||||||
|
|
||||||
// Pointeurs vers les deux enfants de ce sommet. Ils valent tous
|
// Pointeurs vers les deux enfants de ce sommet. Ils valent tous
|
||||||
// deux NULL si le sommet est une feuille. À noter qu'un sommet
|
// deux NULL si le sommet est une feuille. À noter qu'un sommet
|
||||||
|
|
|
@ -58,7 +58,7 @@ void _printVertex(HufVertex vert, wchar_t* buffer, int length) {
|
||||||
} else {
|
} else {
|
||||||
// Affichage d'une feuille de l'arbre, correspondant
|
// Affichage d'une feuille de l'arbre, correspondant
|
||||||
// à un caractère du corpus
|
// à un caractère du corpus
|
||||||
printf("%c\n", _safeChar(vert.character));
|
printf("%c\n", _safeChar(vert.name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,12 +54,12 @@ HufTree createTree(double* frequencies) {
|
||||||
HufVertex** remaining = malloc(leaves_count * sizeof(*remaining));
|
HufVertex** remaining = malloc(leaves_count * sizeof(*remaining));
|
||||||
size_t next_index = 0;
|
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) {
|
if (frequencies[i] > 0) {
|
||||||
remaining[next_index] = malloc(sizeof(*remaining[next_index]));
|
remaining[next_index] = malloc(sizeof(*remaining[next_index]));
|
||||||
|
|
||||||
|
remaining[next_index]->name = i;
|
||||||
remaining[next_index]->frequency = frequencies[i];
|
remaining[next_index]->frequency = frequencies[i];
|
||||||
remaining[next_index]->character = (char) i;
|
|
||||||
remaining[next_index]->child_l = NULL;
|
remaining[next_index]->child_l = NULL;
|
||||||
remaining[next_index]->child_r = NULL;
|
remaining[next_index]->child_r = NULL;
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ void _writeVertex(HufVertex vertex, Buffer* buffer) {
|
||||||
pushToBuffer(
|
pushToBuffer(
|
||||||
// Écriture du n-ième bit du caractère du fils
|
// Écriture du n-ième bit du caractère du fils
|
||||||
// dans le tampon
|
// dans le tampon
|
||||||
(vertex.character & (1 << i)) != 0,
|
(vertex.name & (1 << i)) != 0,
|
||||||
buffer
|
buffer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -245,7 +245,7 @@ void _labelVertex(HufVertex vertex, char** labels, char* label, size_t length) {
|
||||||
} else {
|
} else {
|
||||||
// Si le sommet est une feuille, étiquetage du caractère
|
// Si le sommet est une feuille, étiquetage du caractère
|
||||||
// associé avec l'étiquette passée en paramètre. Fin de la récursion
|
// associé avec l'étiquette passée en paramètre. Fin de la récursion
|
||||||
labels[(size_t) vertex.character] = label;
|
labels[vertex.name] = label;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue