none
Generer des combinaisons - Structure en Arbre RRS feed

  • Question

  • Bonjour,

    J'ai un problème d'arrangement à résoudre:
    J"ai des objets (Strings ou autres objets) à arranger suivant toutes les combinaisons possibles : par exemples si mes objets sont A,B,C
    mon programme doit générer la liste suivante:

    ABC-ACB-BAC-BCA-CAB-CBA

    Le nombre peut aller à quelques dizaines! soit 3628800 combinaisons par exemple pour 10 objets (factoriel 10)
    J'ai eu l'idée d'utiliser un structure d'arbre comme illustré dans le screenshot ci dessous(illustré par le contrôle TreeView)
    http://fr.tinypic.com/view.php?pic=f36p8i&s=6

    J'ai deux question:

    1) Est ce qu'il y a une meilleure méthode pour effectuer cette tache

    2) J'utilise maintenant le contrôle TreeView mais ça ne me permet pas de stocker des objets quelconques et c'est lourd pour des long traitements. Est ce qu'il y a des classes prêtes qui permettent de stocker des arbres (n-aires)?

    Je vous remercie d'avance
    jeudi 1 juillet 2010 15:46

Réponses

  • Bonjour,

    Vous pouvez très bien faire cela en programmation orienté objet sans passer par le TreeView de Windows Forms. Il suffit de définir une classe Node qui contient une liste de nodes... Et c'est tout... Chaque node représente un noeud de votre arbre.

    Est-ce que cela répond à votre question ?

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse AmineTn vendredi 2 juillet 2010 09:33
    jeudi 1 juillet 2010 21:28
    Modérateur

Toutes les réponses

  • Bonjour,

    Vous pouvez très bien faire cela en programmation orienté objet sans passer par le TreeView de Windows Forms. Il suffit de définir une classe Node qui contient une liste de nodes... Et c'est tout... Chaque node représente un noeud de votre arbre.

    Est-ce que cela répond à votre question ?

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse AmineTn vendredi 2 juillet 2010 09:33
    jeudi 1 juillet 2010 21:28
    Modérateur
  • Bonjour,

    Vous pouvez très bien faire cela en programmation orienté objet sans passer par le TreeView de Windows Forms. Il suffit de définir une classe Node qui contient une liste de nodes... Et c'est tout... Chaque node représente un noeud de votre arbre.

    Est-ce que cela répond à votre question ?

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr

    Bonjour,

    Merci pour la réponse, ça répond à ma 2eme questions.

    Une autre Question svp, est ce que le parcours de l'arbre avec piles sera meilleur que le parcours récursif?(coté temps de calcul)

    Merci

    vendredi 2 juillet 2010 08:46
  • Bonjour,

    Normalement oui... Mais il faut le mesurer pour en être sur... (Stack utilise un tableau statique en interne, ce qui peut devenir couteux en temps)...

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    vendredi 2 juillet 2010 09:14
    Modérateur