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

Windows Forms Discussion :

Algorithme de boucle


Sujet :

Windows Forms

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2009
    Messages : 98
    Points : 311
    Points
    311
    Par défaut Algorithme de boucle
    Bonjour !

    J'essaie de monter un projet, et j'ai un algorithme qui me donne bien du fil à retordre. Je monte un programme où une hiérarchie de personnes sont en dessous du client actuel. Il n'y a que deux branches possibles : la droite et la gauche. Mon problème est que je veux recenser tous les clients qui se situent dans la branche gauche du client actuel (algorithme personnalisé pour chaque client). Par contre, je veux savoir tous les clients qui se situent dans les branches gauches et droites des clients en dessous. J'avais pensé à un for each puisque j'utiliserai des objets pour définir chaque client. Le problème, c'est que je ne trouve pas l'algorithme nécessaire. Il sera probablement nécessaire d'imbriquer quelques boucles l'une dans l'autre. Il faut aussi comprendre que le nombre de niveau en dessous du client actuel est infini, sans limite.

    Par exemple :


    Dans cet exemple, client 1 est dans la branche gauche du client actuel, comme l'est aussi client 2, 3, 4 et 5. Dans la branche droite, il y a client 6, 8, 7, 11, 10 et 9. Si quelqu'un pourrait m'aider avec cet algorithme, ce serait très apprécié et me donnerait un sérieux coup de pouce dans mon apprentissage du C#.

    Merci beaucoup en avance,
    gretro
    Images attachées Images attachées  

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ben c'est pas tres compliqué
    Et ce n'est pas dépendant de ton apprentissage cSharp c'est de la logique !

    Tu cree une liste de Client
    Tu ajoute le premier dans ta liste
    Ensuite tu parcours ta liste en ajoutant successivement a ta liste les enfants du client sur lequel tu te trouve dans ta liste tant que tu a des enfants non null

    Courage !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    voir tu peux mettre créer une classe Client ayant ce type la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class Client : List<Client>
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut TheMonz

    A mon avis dans le contexte, il sera plus facile de creer une Liste de Client indépendante des objets deja en place.

    J'imagine que la classe client existe deja qu'elle contient bien deux enfants gauche et droit et que l'arbre a eté construit par un mecanisme déja enplace.


    Si la difficulté est de parcourrir tous les enfants accrochés a une branche de l'arbre, la constitution dynamique d'une liste que l'on parcours pour rajouter chaque enfant rencontré me semble le plus simple et va de fait emuler la recursion necessaire

    MAIS !!! J'espere qu'un enfant ne peux pas avoir deux parents différent, sinon il va falloir rajoute qq tests !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Les données sont stockées de quelle manière ? Car si derrière tu as une base de données, l'utilisation d'un arbre intervallaire peut être intéressante (pas d'auto-jointure, requête simple, ...). Surtout si la profondeur peut être importante

    Pour récupérer ce que tu veux c'est super simple ensuite.

    Si tu n'as pas de base de données mais que tu as accès à Linq (Linq To Object dans ce cas), je suis presque sûr qu'on peut faire pareil une fois que tu as tes objets. Mais n'ayant pas encore eu l'occasion de regarder Linq de plus près, cela reste à vérifier.
    Pas de questions techniques par MP

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/07/2015, 11h01
  2. Boucles & algorithm
    Par gatus dans le forum Formules
    Réponses: 8
    Dernier message: 06/07/2010, 09h24
  3. algorithme boucle à l'infinie
    Par vladimire dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/01/2009, 20h22

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