Parcours d'arbre et sauvegarde en binaire
Bonjourn
Voila, j'ai créé un arbre binaire (correspond à l'algorithme d'Huffman) et je voudrais le parcourir de telle façon a quoi correspond chaque branche :
racine
| \
| | \
a b c
a = 1 , b = 01 , c = 00
le parcours de l'abre n'est pas un problème j'arrive à le faire (je le fait de façon récurcive), j'arrive également à afficher de façon basique, juste pour vérifier comment ça évolue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
typedef struct PHuff{
struct PHuff* lg;
struct PHuff* ld;
int verif;
char ascii;
int freq;
} Huff ;
void fonction_arbre(Huff *arbre , int valeur)
{
if((arbre->lg == NULL) && (arbre->ld == NULL))
{ printf("%c : %d\n",arbre->ascii,valeur);}
else{
if (arbre->lg !=NULL)
fonction_arbre(arbre->lg, valeur*10+1);
if (arbre->ld !=NULL)
fonction_arbre(arbre->ld, valeur*10);
}
} |
avec le code qui commencera forcemment par un 1 (je repete, juste pour vérifier^^), le problème est que je ne vois absolument pas comment je peux le faire en binaire. Si quelqu'un pouvez m'aider, en esperant que mon explication ne soit pas trop confuse.