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 :

Génération d'un arbre n-aire


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Points : 10
    Points
    10
    Par défaut Génération d'un arbre n-aire
    Bonjour à tous,

    Pour modéliser un jeu en c++ (le taquin), j'essai de construire un arbre des possibilités.

    A chaque étape, (selon le cas) il y a entre 2 et 4 choix de déplacement (d'ou l'arbre n-aire).

    J'ai bien réussi a faire une classe Tree et Node qui compile et fonctionne correctement pour l'ajout/supression/modification de noeud, hierarchie etc ...

    Mais je ne vois pas comment faire pour construire l'arbre "automatiquement".

    J'entends par la que je dois construire chaque noeud du niveau 1 avant de passer ou niveau 2 (état initial = état 0 et +1 a chaque fois que l'on descends dans l'arborescence).

    J'ai bien en tête comment construire une "branche jusqu'a la solution ou une condition d arret, mais je bloque pour générer les noeuds de meme niveau avant de descendre au niveau suivant ...

    Si quelqu'un avait des conseils / une idée pour les boucles a mettre en place ce serait génial merci

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    Bonjour,

    Essaye de regarder du côté des parcours en profondeur et parcours en largeur d'un arbre.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 72
    Points : 129
    Points
    129
    Par défaut
    Bonjour,

    Bonne idée le taquin, commence par faire 4 fonctions du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool estSurLeBordGauche()
    {
        return ( x==0 );// x et y sont les coordonnées de la case libre
    }
    ensuite dans une boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if( !estSurLeBordGauche())
        ajouterUnFils();// avec un argument qui précise le déplacement
    if( !estSurLeBordDroit())
        ajouterUnFils();
    if( !estSurLeBordSup())
        ajouterUnFils();
    if( !estSurLeBordInf())
        ajouterUnFils();
    en espèrant que ça t'aura donné une idée...

Discussions similaires

  1. [Graphique] affichage d'arbres n-aires
    Par jeepnc dans le forum Graphisme
    Réponses: 2
    Dernier message: 21/03/2006, 22h27
  2. Parcours en profondeur d'un arbre n-aire
    Par Premium dans le forum Langage
    Réponses: 11
    Dernier message: 20/02/2006, 09h01
  3. [debutant] parcours en profondeur arbre n-aire
    Par tx dans le forum Langage
    Réponses: 1
    Dernier message: 15/02/2006, 04h56
  4. construire un arbre n-aire
    Par emidelphi77 dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2005, 19h47
  5. arbre n-aire delete
    Par Fry dans le forum C++
    Réponses: 13
    Dernier message: 19/10/2004, 22h22

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