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

Langage Java Discussion :

[débutante] listes chainées


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [débutante] listes chainées
    bonjour,
    Je dois réaliser un programme dans lequel je suis obligée de manipuler plusieurs liste chainées. 2 problèmes se posent à moi:

    - Tout d'abord je dois créer une liste de listes.
    j'ai esseyé de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    A = new ListeChainee
    B= new ListeChainee
    C = new ListeCHainee
     
    B.ajouter en tête ("eee")
    B. ajouter en têt("aaa")
     
    C.ajouter en tête ("iii")
     
    A.ajouter en tête (B)
    A.ajouter en tête (C)
    mais ça ne semble pas marcher. j'arrive à compiler mais quand je cherche à obtenir la tête de ma liste A on me dit qu'elle est vide.

    -D'autre part, les différentes listes que j'utilise sont créées dans différentes classes. Comment faire pour les manipuler hors de la classe dans laquelle elles ont été crées ?

    Merci pour les éclaircissements que vous pouriez m'apporter.

    [ Modéré par Bulbo ]
    Ajout des balises code

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 866
    Points : 22 913
    Points
    22 913
    Billets dans le blog
    51
    Par défaut
    Tout d'abord il existe deja une classe de liste chainees a usage multiple, il s'agit de LinkedList.
    La methode ajouter_en_tête(elem) est remplacable via l'appel de add(0, elem). Resp pour le retrait de l'element en tete via get(0).

    Ensuite c'est assez facile de creer des listes de listes avec ou sans l'aide des Generics.
    Avec Generics/post 1.5 :
    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
    26
    27
    28
     
    List<List<String>> a = new LinkedList<List<String>>();
    List<String> b = new LinkedList<String>();
    List<String> c = new LinkedList<String>();
     
    b.add(0, "eee");
    b.add(0, "aaa");
    c.add(0, "iii");
    a.add(0, b);
    a.add(0, c);
     
    List<String> first = a.get(0);
    for (String s : first) {
      System.out.println(s);
    }
    // Ou:
    /*
    for (Iterator<String> it = first.iterator() ; it.hasNext() ; ) {
      System.out.println(it.next());
    }
    */
    // Ou: 
    /*
    int size = first.size();
    for (int i = 0 ; i < size ; i++) {
      System.out.println(first.get(i));
    }
    */
    Sans Generics/pre 1.5 :
    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
     
    List a = new LinkedList();
    List b = new LinkedList();
    List c = new LinkedList();
     
    b.add(0, "eee");
    b.add(0, "aaa");
    c.add(0, "iii");
    a.add(0, b);
    a.add(0, c);
     
    List first = (List)a.get(0);
    for (Iterator it = first.iterator() ; it.hasNext() ; ) {
      System.out.println((String)it.next());
    }
    // ou 
    /*
    int size = first.size();
    for (int i = 0 ; i < size ; i++) {
      System.out.println((String)first.get(i));
    }
    */
    ;

    Pour ton probleme de liste vide ca doit venir du fait que ton implementation personnelle d'une liste chainee de listes doit avoir un pb/bug qq part.

    -D'autre part, les différentes listes que j'utilise sont créées dans différentes classes.
    D'ou l'utilite d'utiliser un type de listes generiques pouvant contenir tout et n'importe quoi (des Object donc), voir l'API de Collections.

    Comment faire pour les manipuler hors de la classe dans laquelle elles ont été crées ?
    En les declarant public. Ou alors je n'ai pas compris la question.

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci.
    Le pb de liste de listes est résolu!
    (Je sais qu'il existe des listes chainées dans java mais je suis obligée celle fournies par mon prof....)

    Par contre G toujours un autre problème que je vais détailler.
    dans mon programme G une classe Fait qui contient une liste chainée F1 et une classe règle qui contient une liste chainée F2. Ces 2 listes sont remplies. J'ai ensuite besoin de pouvoir les manipuler depuis une 3è classe Moteur. Dans cette classe ja vais comparer les éléments des 2 liste F1 et F2 et envoyer des éléments de la liste F2 dans F1(ces manipulations seront possibles graçes aux méthode de ma classe Liste Chainée). le problème est que je ne vois même pas comment récupérer F1 et F2 depuis Moteur.
    J'ai esseyé de déclarer mes 2 listes chainées public mais celà ne semble pas suffisant (peut être que mon pb est simplement que je ne sais pas utiliser/récupérer un attribut public...)
    si vous voyez comment résoudre ce problème...
    merci d'avance

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    J'ai pas tout compris ( sms style ),
    pour récupérer l'attribut "attribut" public de la classe "MaClasse" ( dont l'instance sera "maClasse", il suffit de faire :
    Si tu as déclaré cet attribut comme "static", tu pourras faire tout simplement :

Discussions similaires

  1. [Débutant] Pointeur sur liste chainée
    Par HaTnuX dans le forum C
    Réponses: 2
    Dernier message: 02/12/2006, 17h53
  2. [Débutant]Structure et listes chainées
    Par plagia dans le forum C
    Réponses: 28
    Dernier message: 09/11/2006, 00h00
  3. [ Débutant ] trier une liste chainée
    Par sablito dans le forum C
    Réponses: 3
    Dernier message: 01/11/2006, 23h27
  4. [débutante] Liste chainée/système expert
    Par zoune dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 14h41
  5. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 20h25

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