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

avec Java Discussion :

remplir une structure de donnée récursive


Sujet :

avec Java

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut remplir une structure de donnée récursive
    salut

    je tente de remplir à partir d'une map une structure de donnée récursive


    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
    19
    20
    21
    22
    23
    24
    25
     
    public class Info() extend SearchInfo{
     
      long id;
     
    }
     
     
    public class SearchInfo(){
     
      String nom;
      SearchInfo[] searchInfo
     
    }
     
    public class PairInfo(){
     
      long idMere;
      SearchInfo;
     
    }
     
     
     
    Map<long, PairInfo> x = new HashMap<long, PairInfo>();

    pour l'expression
    (x>1) and (y>2 or z<4)

    dans la map je me retrouve avec ces info

    idInfo idMere nom
    1 1 and
    2 1 x>1
    3 1 or
    4 3 y>2
    5 3 z<4

    maintenant je cherche a remplir ma structure de donnée info, searchInfo à partir de cette map

    les info dans la map ne sont pas nécessairement en ordre, ce qui me semble complique les choses pour remplir la structure


    une idée pour démarré?

    merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 20
    Points
    20
    Par défaut d'abord trier suivant les id
    Pour trier : tu mets tous les id (itérer sur MAP.keySet()) dans une liste de long (LISTE) et tu fais le tri (Collections.sort)

    Créer une Map<long, Info> MAP2
    Ensuite pour chaque élément de LISTE (qui sont les clés de MAP)
    • creer une nouvelle Info et la mettre dans MAP2
    • récupérer dans MAP2 l'Info de la mère et y ajouter le fils créé ci dessus


    Remarque : il vaudrait mieux que tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SearchInfo[] searchInfo
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<SearchInfo> searchInfo
    mon blog

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par fabien.duminy Voir le message
    Pour trier : tu mets tous les id (itérer sur MAP.keySet()) dans une liste de long (LISTE) et tu fais le tri (Collections.sort)

    Créer une Map<long, Info> MAP2
    Ensuite pour chaque élément de LISTE (qui sont les clés de MAP)
    • creer une nouvelle Info et la mettre dans MAP2
    • récupérer dans MAP2 l'Info de la mère et y ajouter le fils créé ci dessus


    Remarque : il vaudrait mieux que tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SearchInfo[] searchInfo
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<SearchInfo> searchInfo
    mon blog
    je peux avoir la map trié par info mère...

    mais je crois pas qu'on puisse faire ça seulement avec une boucle

    il y a qu'une info... le reste c'est des search info... à moins que j'ai mal compris ce que tu expliques

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    ok c'est réussi... il reste à faire des tests plus poussé

    quelqu'un saurait comment parcourir une telle structure?

    car je dois insérer ça dans une bd

    j'ai fait du récursif... mais je demande si c'est possible en itératif, ça aurait moins de chance de tuer la jvm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void insertCondition(SearchCondition[] sc){
     
            for(int i=0;i<sc.length;i++){
     
                if(sc[i].getChildren()!=null){
                    System.out.println(sc[i].isNegation());
                    insertCondition(sc[i].getChildren());
                }
                else
                    System.out.println(sc[i].isNegation());
            }
        }

Discussions similaires

  1. choix s'une structure de données
    Par fabaroulettes dans le forum Langage
    Réponses: 3
    Dernier message: 08/02/2007, 10h26
  2. [POO] Créer une structure de données
    Par zulot dans le forum Langage
    Réponses: 10
    Dernier message: 15/08/2006, 12h51
  3. Réponses: 3
    Dernier message: 29/03/2006, 14h23
  4. Comment créer une structure de donnée dynamiquement ?
    Par Beaunico dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 09h34
  5. [Initialisation] Remplir une structure une fois
    Par Kimael dans le forum Langage
    Réponses: 14
    Dernier message: 08/06/2004, 15h33

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