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

C++ Discussion :

probleme d'arbre, evaluation des feuilles


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut probleme d'arbre, evaluation des feuilles
    Bonjour,

    je suis en train de codes un arbre qui me permettra d'implémenter un plan cartésien. La stratégie que j'utilise comporte à avoir deux nœuds "sentinelles" un vrai et un faux sur lesquels je pointerai pour simuler la valeur d'une coordonnée du plan...

    Mon problème est que je ne sais pas comment faire pour aller évaluer les "sentinelles",voici une partie du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    struct Noeud
    {
        Noeud * N_O;
        Noeud * N_E;
        Noeud * S_O;
        Noeud * S_E;
    }
    Noeud * racine;
    Noeud * noeudVrai;   //sentinelle vrai
    Noeud * noeudFaux;  //sentinelle fausse
    J'aimerais pouvoir écrire quelque chose du genre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Noeud * noeudSuivant = new Noeud;
     
    if(noeudSuivant -> N_O == noeudVrai)
    {
       ...
    }
    Comment faire??

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Bonsoir,

    Je n'ai pas bien saisi ta stratégie (voir très mal, mais c'est peut être le manque de sommeil), mais basiquement, si ton noeudfaux sert simplement à indiquer qu'il n'y a rien dans cette direction, je veux dire par là que ses valeurs n'ont aucune importance et qu'il ne sera jamais la source d'un sous arbre, pour ne pas l'affecter simplement à la valeur NULL ou 0 (0 est à priori mieux car NULL est en réalité un #define NULL 0 susceptible d'être redéfinis mais peut importe ici, cela sert à indiquer un pointeur vers nulle-part).

    Ainsi ton test devient simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(noeudSuivant -> N_O == NULL){ bla bla bla }
    Dans le cas contraire je ne vois pas d'autre solution que de créer une variable booléenne contenu dans ta struct indiquant si c'est un noeudvrai donc ou un noeudfaux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    struct Noeud
    {
        Noeud * N_O;
        Noeud * N_E;
        Noeud * S_O;
        Noeud * S_E;
        bool typeNoeud;
    }
     
    if(noeudSuivant -> N_O.typeNoeud)
    {
       bla bla bla // exécuté si typeNoeud==TRUE
    }
    En espérant t'avoir apporté quelque chose .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut
    C'est exactement ce dont j'avais besoin !

    Je te remercie beaucoup!

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Humm, tu avais sans doute déjà traduis mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(noeudSuivant -> N_O -> typeNoeud)
    Bien sûr .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut
    Oui je te remercies! Je viens de terminer mon programme, j'ai une bien meilleure compréhension des arbres maintenant...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réorganisation d'un arbre selon la chronologie des feuilles
    Par arundel dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 12/02/2015, 15h54
  2. Réponses: 6
    Dernier message: 02/10/2014, 11h58
  3. Réponses: 4
    Dernier message: 13/04/2010, 07h03
  4. Arbre binaire : lecture des feuilles
    Par kromartien dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 05/04/2009, 17h47
  5. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33

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