Rechercher : dans
Par :

Structure d'arbre

Dernière réponse le 19 avr 2008 à 23:01:53 FireWire, le 19 avr 2008 à 14:48:32 
 Signaler ce message aux modérateurs

Bonjour,


j'ai une fonction (java) qui lit une structure d'arbre (généalogique). Le noeud a chaque fois 2fils:

 public void lire_arbre(Node n)
 {           
            /*
             *lire(noeud)             
             *if noeud.gauche  != nul alors lire(noeud.gauche)
             *if noeud.droite  != nul alors lire(noeud.droite)
             */
                       
                System.out.println("Valeur noeud "+n.getvalue());                
                if(n.getleft()!=null)
                {
                    lire_arbre(n);
                }
                    
                else if(n.getright()!=null)
                {
                    lire_arbre(n);
                }                     
}
        

ma structure Node est définie comme suit:
class Node 
{
    Node left;
    Node right;
    String etiquette;
... ect

//les fonctions get et set en plus

}


Elle boucle sur le noeud racine tout le temps...
C'est peut-être une bête erreur que je vois pas donc peut-être que l'un de vous verra ce qu'il manque.

Merci de votre aide
Configuration: Linux
Firefox 2.0.0.6

Meilleures réponses pour « structure d'arbre » dans :
Les structures en langage C++ Voir Différence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Structure logique d'un disque dur VoirStructure logique d'un disque dur Introduction Lorsque vous utilisez votre ordinateur, vos données sont organisées sous forme de fichiers et de répertoires, selon une structure arborescente et ces éléments sont stockés sur votre disque dur. C'est...
Javascript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non, ce qui permet notamment de donner de l'interactivité à vos scripts. L'instruction...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Java: Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...

1

vlmath, le 19 avr 2008 à 18:37:50
  • +1

Salut,

C'est normal : dans les conditions, tu dis que si le noeud de gauche existe, il doit lire le noeud courant ...
Tu devrais essayer avec :

System.out.println("Valeur noeud "+n.getvalue());                
if( n.getleft()  != null ) lire_arbre( n.getleft()  );
if( n.getright() != null ) lire_arbre( n.getright() );


De plus, il faut enlever le else, sinon, tu ne vas pas parrcourir tout l'arbre ...

@Bientôt

Répondre à vlmath

2

FireWire, le 19 avr 2008 à 22:36:41

Merci pour ta réponse, ça va un peu mieux, j'ai essayé de travailler encore dessus
mais quand je lui met en paramètre :

System.out.println("Valeur noeud "+n.getvalue());                
if( n.getleft()  != null ) lire_arbre( n.getleft()  );
if( n.getright() != null ) lire_arbre( n.getright() );



il me renvoie un "java.lang.NullPointerException"

car il lit chaque fils de gauche puis après je suppose qu'il tombe sur rien du tout...

j'essaye de trouver comment remonter l'arbre pour lire les fils de droite :-s
Vous voyez le problème? Ce que je veux dire?

Répondre à FireWire

3

 FireWire, le 19 avr 2008 à 23:01:53

J'ai résolu le problème :)

Répondre à FireWire
Collection CommentÇaMarche.net