Bonjour
j'ai un problème avec une partie de code , lorsque je créer mon arbre binaire jai un message d'erreur lorsque je rappel ma fonction récursive . Voici les bout de code qui peuvent aider
les structures de travail
----------------------------------------------------------
typedef struct Noeud
{
int valeur;
struct Noeud * filsGauche, * filsDroit;
} Noeud;
typedef struct
{
Noeud * racine;
} ArbreBinaire
----------------------------------
le prototype
--------------------------------
void chargerDonnees (ArbreBinaire *arbre);
----------------------------------
Le main
----------------------------------
void main ()
{
// Déclaration de variables
int Choix; // Choix entrée de l'usager
ArbreBinaire * arbre = new ArbreBinaire;
//traitement de la racine , création d'un noeud
arbre->racine = new Noeud;
// Initilalisation des pointeurs de l'arbre
arbre->racine->filsGauche = NULL;
arbre->racine->filsDroit = NULL;
----------------------------------
la fonction
----------------------------------
void chargerDonnees (ArbreBinaire *arbre)
{
int nombre; // valeur entrée par l'usager
cout << "Entrez un nombre à entrer dans l'arbre:" ;
cin >> nombre;
if(arbre == NULL)
{
return;
}
//si filsDroit est plus petit valeur
else if(nombre <= arbre->racine->valeur)
{
//si le noeud filsDroit existe pas on doit en créer un nouveau
if(arbre->racine->filsGauche == NULL)
{
arbre->racine->filsGauche = new Noeud;
arbre->racine->filsGauche->filsGauche = NULL;
arbre->racine->filsGauche->filsDroit = NULL;
//on assigne la valeur reçu
arbre->racine->filsGauche->valeur = nombre;
}
else
{
//on rappel la fonction pour continu la création de l'arbre
chargerDonnees (arbre->racine->filsGauche );
}
}
else if(nombre > arbre->racine->valeur)
{
//si le noeud filsGauche existe pas on doit en créer un nouveau
if(arbre->racine->filsDroit == NULL)
{
arbre->racine->filsDroit = new Noeud;
arbre->racine->filsDroit->filsDroit = NULL;
arbre->racine->filsDroit->filsGauche = NULL;
//on assigne la valeur reçu
arbre->racine->filsDroit->valeur = nombre;
return;
}
else
{
//on rappel la fonction pour continu la création de l'arbre
chargerDonnees(arbre->racine->filsDroit);
}
}
}
----------------------------------