Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème pointeur en c++ [ Archives / Au secours ] (ch3mical)

jeudi 14 octobre 2004 à 21:56:53 | Problème pointeur en c++

ch3mical

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);
}
}

}




----------------------------------





jeudi 14 octobre 2004 à 23:51:13 | Re : Problème pointeur en c++

ymca2003

la fonction chargerDonnees attend un pointeur sur une structure ArbreBinaire. Or dans la récuresion, tu passe un pointeur sur un Noeud (les fils gauche et droit)
=> en mettant comme paramètre un pointeur sur une structure Noeud ça devrait aller.

Pour commencer la récursion, il suffira de passer un pointeur sur la racine de l'arbre.



Cette discussion est classé dans : arbre, noeud, racine, filsdroit, filsgauche


Répondre à ce message

Sujets en rapport avec ce message

Itérateurs en c++ 2 [ par Saris ] Lorsque je crée un iterateur sur un Arbre, comment puis-je faire en sorte que cet iterator point sur la racine de mon arbre?class Arbre{ private :  cl problème C++ help urgent ! [ par Saris ] Voici un morceau de ma classe générique d'un arbre./****************************************************************************< Les iterateurs en c++ Help me ! [ par Saris ] Bonjour à tous,J'suis bien embèté car je capte pas grand chose au fonctionnement des itérateurs ou plutôt à l'utilité de ceux-ci dans mon projet pour Les arbres en C [ par nadias ] Bonsoir tout le monde,Je voudrai SVP etre corriger s'il y a erreur merci.On me demande de creer un arbre. Voici la consigne:"Cette arbre possède des n [débutant] probleme de compilation [ par gluff ] Bonsoir, je réalise un programme qui crée un arbre généalogique à partir d'un arbre binaire  Il y a un structure NOEUD revoie vers le nom de la perso Arbre binaire [ par granoli ] Bonjour, et bonne année 2007,J'aimerais un algorithme simple de création d'arbre binaire.J'ai bien compris le concept des arbres binaires mais j'ai du faire un projet enc [ par nana87 ] slt, j'ai eu un programme en c mais je dois le réorganiser sous forme des fichier pour faire un projet ,il y a quelqu'un qui peut m'aider pour ce prob fonctions de base d'un arbre binaire [ par abdelkaderg54 ] Salut tout le monde ..Ben alors j'ai un probleme avec les arbre binaires ,je suis a la recherche des fonctions des base suivantes en c++:1/declaration arbre lexicographique [ par finoss ] Bonjour,Je dois réalisé pour un projet un arbre lexicographique en C, j'ai réussi à faire le code pour importer les 16000 mots depuis un fichier texte Affichage d'un arbre dynamique(en C) [ par marocweb ] bonjour tout le monde,j'ai un arbre déja crée en mémoire en utilisant les listes chainées et cela comme suit :Chaque noeud point vers une liste chainé


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,827 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.