IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Calculer le niveau d'un arbre


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Points : 51
    Points
    51
    Par défaut Calculer le niveau d'un arbre
    Bonjour,
    Je dois écrire une méthode qui calcule le niveau maximum d'un arbre.
    Je reçois donc la racine de l'arbre et avec cette racine je cherche le niveau maximum.

    Ca ressemblera donc à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public int calculeNiveau(Noeud noeud) {
       if noeud == null
          return 0; 
       else 
          ....
     
    }
    Je bloque donc sur le else qui devra appeler la méthode de façon récursive...

    Merci d'avance.

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Si tu veux le faire de maniere recursive pour un niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public int calculeNiveau(Noeud noeud) {
       if noeud == null
          return 0; 
       else 
          return calculeNiveau(noeud.getNext())+1;
     }
    Ensuite, ca depend du nombre de branches / noeud. Il faut les parcourir et trouver la valeur max à chaque noeud. Par exemple, pour un arbre binaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public int calculeNiveau(Noeud noeud) {
       if noeud == null
          return 0; 
       else
       {
          int valMax= calculeNiveau(noeud.getNoeudG())+1;
          int valD = calculeNiveau(noeud.getNoeudD())+1;
          if(valMax < valD)
          {
             valMax = valD;
          }
          return valMax ;
       }
    Et s'il y a n noeuds, il faut faire un for de la meme maniere

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/03/2013, 17h33
  2. Calcul au niveau du datagridview
    Par najoua01 dans le forum VB.NET
    Réponses: 7
    Dernier message: 04/11/2010, 10h24
  3. Calcul du niveau de gris de chaque région
    Par samiov dans le forum Images
    Réponses: 2
    Dernier message: 06/05/2010, 14h42
  4. [XSLT] calcul du niveau d'un élément
    Par knebhi dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/05/2010, 11h22
  5. Calcul au niveau d'une colonne d'un DBGrid
    Par soror dans le forum Débuter
    Réponses: 6
    Dernier message: 21/08/2007, 07h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo