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

VB.NET Discussion :

Generer des combinaisons - Structure en Arbre


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Generer des combinaisons - Structure en Arbre
    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

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 178
    Points : 25 126
    Points
    25 126
    Par défaut
    pour trouver le combinaisons, tu peux faire de la récursivité
    et pour stocker, peut etre faire une classe avec une propriété de type collection d'elle meme, comme ca tu peux descendre (et éventuellement une propriété parent pour remonter rapidement si nécessaire)

  3. #3
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    code de base pour un arbre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Tree<T>
    {
        public List<Tree<T>> Children { get; set; }
        public T Value { get; set; }
    }
    Sur codeplex il existe pas mal d'implémentations d'arbres.

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci pour les réponses

    Citation Envoyé par Pol63 Voir le message
    pour trouver le combinaisons, tu peux faire de la récursivité
    Oui c'est comme ça que j'ai pu remplir le treeView.

    Une autre Question sur ce point, est ce que le parcours avec piles sera meilleur?(coté temps de calcul)

    Citation Envoyé par Pol63 Voir le message
    et pour stocker, peut etre faire une classe avec une propriété de type collection d'elle meme, comme ca tu peux descendre (et éventuellement une propriété parent pour remonter rapidement si nécessaire)
    Oui c'est ce que je vais faire, j'ai voulu m'assurer qu'il n'ya pas d'implémentations prêtes pour ce genre de structure.

    Citation Envoyé par meziantou Voir le message
    code de base pour un arbre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Tree<T>
    {
        public List<Tree<T>> Children { get; set; }
        public T Value { get; set; }
    }
    Merci

    Citation Envoyé par meziantou Voir le message
    Sur codeplex il existe pas mal d'implémentations d'arbres.
    Merci pour l'info mais j'ai pas trouvé ce qui me convient

  5. #5
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Merci pour l'info mais j'ai pas trouvé ce qui me convient
    Regarde le projet NGeneric
    http://code.google.com/p/ngenerics/

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par meziantou Voir le message
    Regarde le projet NGeneric
    http://code.google.com/p/ngenerics/
    Merci
    Juste une petit détail : quelle est la différence entre
    public int Degree { get; }
    public int Height { get; }
    est ce que c'est juste le sens de comptage qui diffère

  7. #7
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Un petit rappel (ou cours) sur les arbres te ferait un peu de bien
    http://en.wikipedia.org/wiki/Binary_tree

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci

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

Discussions similaires

  1. [Info] Générer des numéros de licence
    Par nico2280 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 24/08/2005, 16h35
  2. Classe pour generer des logs
    Par freddyboy dans le forum MFC
    Réponses: 9
    Dernier message: 13/07/2005, 13h54
  3. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 18h45
  4. Comment générer des fichiers html ?
    Par keke33 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/06/2004, 17h28
  5. Réponses: 2
    Dernier message: 22/07/2002, 19h02

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