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
|
||||
// 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
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue