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