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++Builder Discussion :

Construire un arbre n-aire


Sujet :

C++Builder

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut Construire un arbre n-aire
    Bonjour,

    Je sais comment créer un arbre binaire, une simple récursivité !
    Je veux créer un arbre avec plus de 2 branches mais je trouve pas la récursivité correspondante !
    L'arbre n-aire correspond à l'arborescence des fichiers !

    Quelqu'un a une idée ?

  2. #2
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    Il faut que tu te construise une matrice de cheminement. Si tu as 5 possibilités:
    1 2 3 4 5
    ------------
    1| 1 1 1 0 1
    2| 1 1 0 1 0
    3| 1 0 1 0 1
    4| 0 1 0 1 0
    5| 1 0 0 0 1

    Si tu as l'arbre suivant:

    1--> 2, 3, 5
    2--> 1, 4
    3--> 1, 5
    4--> 2
    5-->1

    Ici le 1 signifie que tu peux y aller, tu peux le remplacer par des poids (dans le cas de distance à parcourir, expl plus facile d'aller de 1 à 5 par 2 (1,2,5)).
    Cette matrice est donc symétrique.

    Il existe plusieurs algorithme de recherche plus ou moins optimisés. Voici in exemple sur Wikipédia.

    Jette un oeil ca peux t'aider pour de futur développement. Si tu as des questions, n'hésites pas.

  3. #3
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Merci pour le lien bandit boy !

    Mais cet algo de Dijkstra sert pour résoudre le problème du court chemin mais je pensais à un arbre comme un arbre binaire avec plus de 2 fils !
    J'ai vu le lien mais je vais l'analyser un peu plus car il se peut que je me trompe !

    Ok!

  4. #4
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Juste pour ceux qu'ils veulent développer ce point, un arbre n-aire s'appelle un graphe connexe.

    Wikipédia propose un article sur ces graphes et plusieurs solutions de créations et de parcours de ces graphes.

Discussions similaires

  1. construire un arbre n aire
    Par drake84450 dans le forum C++
    Réponses: 4
    Dernier message: 21/04/2013, 17h45
  2. Parcours en profondeur d'un arbre n-aire
    Par Premium dans le forum Langage
    Réponses: 11
    Dernier message: 20/02/2006, 08h01
  3. [debutant] parcours en profondeur arbre n-aire
    Par tx dans le forum Langage
    Réponses: 1
    Dernier message: 15/02/2006, 03h56
  4. construire un arbre n-aire
    Par emidelphi77 dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2005, 18h47
  5. arbre n-aire delete
    Par Fry dans le forum C++
    Réponses: 13
    Dernier message: 19/10/2004, 21h22

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