wititit
Messages postés11Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention22 juillet 2009
-
28 févr. 2007 à 02:14
wititit
Messages postés11Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention22 juillet 2009
-
2 mars 2007 à 12:23
Bonsoir la team,
je travaille en ce moment sur les arbres binaires de recherche et je rencontre un problème lorsque je souhaite ajouter un noeud.
Voici de la fonction dont je dispose:
void ajout(Noeud r, Noeud p, boolean g, element e)
Lorsque je veux ajouter un noeud j'apelle cette fonction grâce à la commande suivante:
ajout(racine, null, true, x);
pouvez vous svp me donner la façon qui me permmettrai d'implémenter le premier noeud de l'arbre?
En effet, au tout début je n'ai pas d'abre donc ma racine de l'abre est : "racine = null"
quand je vais parcourir ma fonction en java, je vais rencontrer le cas suivant lorsque mon arbre est vide : (dans ma fonction ajout)
if ( r == null) {
r.contenu = e ;
r.fils_droit = null;
r.fils_gauche = null;
}// incomplet ....
interprétation:
au début mon arbre est vide, donc j'ajoute à ma racine l'élément (étiquette) e , et j'initialise ses 2 fils à "null";
il me manque quelquechose, et c'est ça qui me bloque car je ne sais pas quoi:
il me faudrait créer un noeud et que ma racine pointe dessus.
mais comment le faire en java??
aidez moi svp,
berni ;-)
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 28 févr. 2007 à 09:07
if ( r == null) {
r.contenu = e ;
r.fils_droit = null;
r.fils_gauche = null;
}// incomplet ....
=> si r est null ton prog il va planter a ce niveau il faut que instancier l'objet r avant de faire des r.contenu ...
wititit
Messages postés11Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention22 juillet 2009 28 févr. 2007 à 10:49
Merci Lauret pour ta réponse, mais pourraistu me dire comment instancer r,
car j'appelle ma fonction avec la commande suivante:
"ajout(racine, null, true, x) " ?
berni.
wititit
Messages postés11Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention22 juillet 2009 28 févr. 2007 à 11:05
le constructeur noeud n'est pas défini...
je ne suis pas familié avec java, je le suis beaucoup plus avec C, c'est pour cela que mes questions peuvent vous paraître ridicule...
tout aide me sera donc très utile..
merci, berni.
wititit
Messages postés11Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention22 juillet 2009 1 mars 2007 à 13:59
Bonjour Laurent,
j'ai résolu mon problème de modification de mon noeud r (racine de mon arbre bianaire lors de l'apelle de la fonction : "ajout(racine, null, true, x)"
qui, pour chaque ajout d'un noeud sera lancé telle quelle.
Mais pourquoi rien ne s'affiche lorsque je clique sur mon bouton pour ajouter un noeud?
Pourtant r est bien créer lorsque l'arbre est vide avec "new Noeud(......)".
Lorsque je rajoute un deuxième noeud, mon System.out.println(r), me dit que r est vide!
Pourquoi n'est il pas pris en compte?
wititit
Messages postés11Date d'inscriptionmercredi 12 mai 2004StatutMembreDernière intervention22 juillet 2009 2 mars 2007 à 12:23
Bonjour Laurent, je te remercie pour ton aide, j'ai résolu mon problème!!
Par rapport au C, Java est un langage de plus bas niveau,
ainsi lors d'une appel d'une fonction, les paramètres changeant dans la fonction, vallent les même valeurs qu'ils avaient avant l'appel de la fonction!
Ainsi, pour revenir à mon problème, il fallait rajouter : racine = r, car est était bien ma racine dans ma fonction, mais seulement dedans, en dehors de la fonction, r ne variait pas!
Merci beaucoup pour ton aide, ça m'a vraiment aidé!
@ bientôt, Laurent, et encore merci,
berni ;-)