Initialisation d'un arbre avec liste
	
	
		liste contient ke code morse de chaque lettre et je veux initialiser mon arbre avec cette liste.
Le probleme c'est que j'ai un soucis pour une seule valeur de l'arbre qui le "A" qui est la premiere valeur de la liste.
Code de l'arbre
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
   | #include "arbre.h"
 
void creerArbre(Arbre* a)
{
   *a = (Arbre)malloc(sizeof(Noeud));
   (*a)->lettre = ' ';
   (*a)->fgauche = NULL;
   (*a)->fdroit = NULL;
}
void InitArbre(Arbre a, Liste l)
{
     int i = 0;
     l = l->suiv;
     while(l)
     {
         Arbre b = a;
         char* m = l->morse; 
         for(i = 0; *(m+i) != '\0'; i++)
         {    
             Arbre e;
 
             if (*(m+i)=='.') e = b->fgauche;
             else e = b->fdroit;
 
             //Arbre e = (*(m+i) == '.')? b->Gauche: b->Droit;    
             if(e == NULL)
             {
                 e = (Arbre)malloc(sizeof(Noeud));
                 e->fgauche = NULL;
                 e->fdroit = NULL;
                 if(*(m+i) == '.')
                     b->fgauche = e;
                 else
                     b->fdroit = e;
             }
             b = e;
         }
         b->lettre = l->c;
         l = l->suiv;
     }
}
 
void Afficher_arbre(Arbre a)
{
     if (a!=NULL)
     {
          Afficher_arbre(a->fdroit);
          //Afficher_arbre(a->fgauche);
          printf("%c \n",a->lettre);
          Afficher_arbre(a->fgauche);
          //Afficher_arbre(a->fdroit);
     }
}
 
char ConvertirMorse(char* m, Arbre a)
{
     int i = 0;
 
     for (i = 0; *(m+i) != '\0'; i++)
     {
         if(*(m+i) == '.')
             a = a->fgauche;      
         else
             a = a->fdroit;         
     }
     return a->lettre;    
} |