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

Java Discussion :

Tri par arborescence


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Tri par arborescence
    Bonjour,

    J'ai une liste de tâche dont certaines sont les sous tâches d'autres, exemple:

    tache A, sous tache A1 de A, Sous tache A2 de A, sous sous tache 1 de A1...

    les niveaux dans arborescence sont illimités, les noms diffèrent de l'exemple, une tache peut ne pas avoir de fils ou peut avoir plusieurs fils

    Les taches sont définis entre autres par un Id et un IdDuParent (entiers)

    je cherche un algorithme [java] qui permet de trier les taches selon l'ordre de:
    tache A, 1er fils de A, sous fils du 1er fils de A... 2eme fils de A ... Tache B ...

    je me suis déjà penché sur les arbres binaire mais c'est limité a deux fils par taches seulement.


    Merci

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class Task {
       int id;
     
       Task parent;
       Task[] children;
     
       public void parcourirPreOrdre(TaskProcessor processor) {
          processor.process(this);
          for (Task child : children) {
             child.parcourirPreOrdre(processor);
          }
       }
    }
     
     
    interface TaskProcessor {
       void process(Task task);
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par herve91 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class Task {
       int id;
     
       Task parent;
       Task[] children;
     
       public void parcourirPreOrdre(TaskProcessor processor) {
          processor.process(this);
          for (Task child : children) {
             parcourirPreOrdre(child);
          }
       }
    }
     
     
    interface TaskProcessor {
       void process(Task task);
    }
    Excellente idée je vais l'essayer. merci herve91

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 94
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par herve91 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Task {
    ....
          processor.process(this);
    ......
    Que fait cette ligne ?

    Merci

  5. #5
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Elle réalise un "certain" traitement sur la tâche. Je suppose que si tu parcours ton arborescence, c'est pour faire qq chose

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 94
    Points : 66
    Points
    66
    Par défaut
    Ok il y a bien une classe qui implémente l'interface et qui possède une méthode process !

    (comme elle n’apparaissait pas ... j'ai fait le naïf lol (manque de soleil!) )

Discussions similaires

  1. fonction de tri par introspection
    Par ned-flanders dans le forum C++
    Réponses: 7
    Dernier message: 21/10/2004, 12h49
  2. [ XML ][ XSL ] tri par date
    Par zozolh2 dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/08/2004, 11h19
  3. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 23h34
  4. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 20h27
  5. Tri par fusion d'un tableau
    Par Mailgifson dans le forum C
    Réponses: 5
    Dernier message: 12/12/2002, 15h53

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