Methode récursive pour la modification d'un tree! Besoin d'aide rapidement

cs_damien781 Messages postés 79 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 13 décembre 2004 - 11 déc. 2004 à 00:17
NeptuS Messages postés 3 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 19 mai 2005 - 21 janv. 2005 à 00:47
Hello,

J'ai besoin d'aide assez rapidement ... si qqun à une idée! merci :big) !

J'ai un modèle mémoire sous forme d'un arbre (composé de noeuds contiennant une valeur, une réf au fils gauche et une ref fils droit), un arbre tout bete en quelque sorte.

J'aimerais pouvoir insérer, à ma guise, un fils droit ou un fils gauche au noeud précédent! Voici une petite explication:

Je crée mon arbre graphiquement. Donc lors de l'insertion de la racine j'utilise la méthode creeRacine()

public void creeRacine(){
//création de la racine
Arbre monArbre = new arbre(maValeurDeNoeudRacine);
this.monArbre=monArbre;
}

Ensuite j'aimerais utiliser une méthode qui insére autant de fils droit que dont j'ai envie! soit maRacine-filsDroit1-filsDroit2.....etc
Une utilisation de la méthode ajouterFilsDroit ajoute un fils droite
au noeud précedemment entré et ainsi de suite! et je pourrai donc l'utiliser autant de vois que j'ai envie!
[i]
public void insererFilsDroit(){
Arbre FuturFilsDroit = new Arbre(maValeurDeNoeud1);
monArbre.accrocherFilsDroit(FuturFilsDroit );
}[i]

Ceci fonctionne pour juste deux noeuds (racine + noeud1), normal car monArbre.accrocherFilsDroit(FuturFilsDroit );

Je ne vois pas comment développer ma méthode pour que monArbre soit à chaque fois le noeud insérer précedement!!
il faudrait un private Arbre ArbreDAvant; mais pour l'utiliser?! :sad)

Un d'entre vous aurait déjà implémenté ceci ou aurait une idée de code pour m'aider??

Merci beaucoup d'avance!! 8-)

Damien781 !

6 réponses

cs_damien781 Messages postés 79 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 13 décembre 2004
11 déc. 2004 à 12:22
Code:
//Méthode permettant d'inserer un filsdroit a mon arbre 
public void ajouterFilsDroit() { 
        Object myObject = new Object(); 
       Arbre nextArbre = new Arbre(myObject); 
        //si faux alors le noeud d'avant est la racine 
         if (valeur == false) { 
           monArbreRacine.accrocherADroite(nextArbre ); 
           valeur = true; //car noeud d'avant plus racine 
           nextArbreBinaire = monArbreBinaire; 
         } 
         //sinon on insere fils au noeud précendent 
         else { 
           nextArbre = new Arbre(myObject); 
           nextArbre.accrocherADroite(nextArbre); 
           monArbreBinaire = nextArbreBinaire; 

         } 
       } 



Ceci fonctionne à moitié!
mise en mémoire racine + premier fils = OK
dès que j'inserer un fils droit de plus il prend la place de la racine!
ce qui donne:
filsDroitDePlus --- racine --- premierFils
et ca continue si j'utilise encore ajouterFilsDroit()
filsDroitDePlusPlus ----- filsDroitDePlus --- racine --- premierFils

J'aimerais que cela s'insère après permierfils et ainsi de suite! Vous comprennez?

Merci!! A+

Damien781 !
0
Nightman150 Messages postés 30 Date d'inscription vendredi 17 mai 2002 Statut Membre Dernière intervention 14 juin 2008
11 déc. 2004 à 14:59
Salut,
Je trouve ton implémentation resemble plus à une
Il faudrai plutôt que tu enregistre les valeurs des fils gauches et droit.

Pour ajouter à droite il faudrai creer un nouveau arbre avec pour fils droit le fils droit courant de l'arbre et ensuite modifier l'ancien fils droit.
Voilà le code :

private Arbre  monArbreRacine,filsDroit,filsGauche;

public void ajouterFilsDroit() {

Object myObject = new Object();

Arbre nextArbre = new Arbre(myObject,filsDroit,void);

monArbreRacine.accrocherADroite(nextArbre);

//nextArbreBinaire = monArbreBinaire; ne sert à rien
}

0
cs_damien781 Messages postés 79 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 13 décembre 2004
11 déc. 2004 à 15:24
ok merci! je vais essayer
Damien781 !
0
cs_damien781 Messages postés 79 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 13 décembre 2004
11 déc. 2004 à 15:29
Ouais c'est bien joli mais quand je r'appelle ma méthode ca insére un fils a la racine et PAS AU FILS vennant d'etre inséré précédemment par la meme méthode...

pff...
Damien781 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nightman150 Messages postés 30 Date d'inscription vendredi 17 mai 2002 Statut Membre Dernière intervention 14 juin 2008
11 déc. 2004 à 15:39
Non.
ça n'e doit pas modifier la racine.
En fait il faut réecrire le constructeur Arbre(Object,Arbre fg,Arbre fd)
C'est joli mais c'est pas moi qui a inventé ça.
C'est comme ça qu'on implémente un arbre normalement!
0
NeptuS Messages postés 3 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 19 mai 2005
21 janv. 2005 à 00:47
tj en galère ? Besoin d'1 coup de pouce ?

Minotaure_tfm@hotmail.com

NeptuS
0
Rejoignez-nous