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 :

Liste chaînée et méthodes


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Liste chaînée et méthodes
    Bonjour,

    Je ne parviens pas à résoudre mes méthodes : chercher, eniem et snoc.

    Merci d'avance pour vos retours.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    class Cellule {
      public int valeur;
      public Cellule suivant;
     
      Cellule(int _valeur)
      {
        valeur = _valeur;
        suivant = null;
      }
    }
    class ListeChaineeL1
    {
      public Cellule tete;
      ListeChaineeL1()
      {
        tete = null;
      }
      public boolean Empty ()
      {
        if (tete == null)
        return true;
        else
        return false;
      }
      public int Head ()
      {
        if (Empty ())
        return -1;
        else
        return tete.valeur;
      }
      public Cellule Tail () {
        if (Empty ())
        return null;
        else
        return tete.suivant;
      }
      public boolean Cons (int e)
      {
      if(e>=0)
      {
        Cellule tmp = new Cellule (e);
        tmp.suivant = tete;
        tete=tmp;
        return true;
      }
      else{
        return false;
      }
      }
    	public int longueur() {
                    Cellule current = tete;
                    int longueur = 0;
                    while (tete!=null){
    			tete = tete.suivant;
                            longueur ++;
    		}
    		return longueur;
    	}
      	public boolean chercher(ListeChaineeL1 listeX, int element) {
    		boolean retour = false;
    		if (listeX != null)
    			if (listeX.head() == element)
    				return true;
    			  else
    				Cellule nextCellule = listeX.tail();
    				while (!retour && nextCellule != null) {
    					if (nextCellule.valeur == element)
    				return true;
    				else
    				nextCellule = nextCellule.NextCellule();
    				}
    		return retour;
    	}
    	public static int nieme(ListeChaineeL1 listeX, int position) {
    		if (position == 1) {
    			return listeX.head();
    		} else {
    			return ListeChaineeL1.nieme(listeX, position - 1);
    		}
      }
      public static void snoc(ListeChaineeL1 listeX, int cellule) {
    		cellule nextCellule = listeX.tail();
    		while (nextCellule != null) {
    			nextCellule = nextCellule.NextCellule();
    		}
    		ListeChaineeL1 nouvelle = new ListeChaineeL1();
    		nouvelle.cons(cellule);
    		return;
    	}
     
      	public void afficher() {
     		Cellule cellule = tete;
    		while (cellule != null ) {
     
    			System.out.println(", " +cellule);
    			cellule = cellule.suivant;
    		}
     	}
    }

  2. #2
    Membre averti Avatar de Kazh Du
    Homme Profil pro
    Développeur Java
    Inscrit en
    novembre 2011
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : novembre 2011
    Messages : 121
    Points : 418
    Points
    418
    Par défaut
    Bonjour,

    Il y a tellement de soucis dans ton code que j'ai du mal à savoir par quoi commencer.
    Sans même parler des méthodes sur lesquelles tu dis avoir des problèmes (il y en a tellement d'autres avant d'arriver à celles-ci) :
    1. Ta nomenclature est... anarchique. Des majuscules sur les noms de méthodes à leur déclaration mais pas après (ton code, tel que tu le présentes, ne peut pas compiler). Des noms en anglais parfois, en français à d'autres occasions (fait un chois STP).
    2. Ton indentation n'est pas mieux. C'est déjà pas facile de lire le code d'un autre, ne nous rends pas la tâche plus ardue.
    3. Tu déclares des variables d'instance en public (ce qui est absolument à éviter)
    4. Head() et Tail() (ou head() et tail() ?) ont des noms similaires mais font des choses différentes (et Tail() donne le deuxième élément de la liste, pas le dernier).
    5. longueur() vide ta liste !!!


    J'ai l'impression que tu as récupéré le code d'une autre personne sans le comprendre.
    Résout tes soucis, réexamine ton code et peut être qu'on pourra faire quelque chose.
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Kazh Du Voir le message
    [*]Head() et Tail() (ou head() et tail() ?) ont des noms similaires mais font des choses différentes (et Tail() donne le deuxième élément de la liste, pas le dernier).
    J'ai l'impression que tu as récupéré le code d'une autre personne sans le comprendre.
    Résout tes soucis, réexamine ton code et peut être qu'on pourra faire quelque chose.
    Merci pour ton retour.

    Les méthodes sont ainsi nommées dans le cours : Empty, Head, Tail, Cons, Longueur, Chercher et Nieme.
    Concernant les méthodes Empty, Head, Tail et Cons, il suffisait de recopier le cours.
    Pour les dernières, je me suis effectivement appuyé sur un autre code.

  4. #4
    Membre averti Avatar de Kazh Du
    Homme Profil pro
    Développeur Java
    Inscrit en
    novembre 2011
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : novembre 2011
    Messages : 121
    Points : 418
    Points
    418
    Par défaut
    Citation Envoyé par steph-0329 Voir le message
    Concernant les méthodes Empty, Head, Tail et Cons, il suffisait de recopier le cours.
    Je ne voudrais pas de ton prof dans mon équipe
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : avril 2013
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Kazh Du Voir le message
    Je ne voudrais pas de ton prof dans mon équipe
    lol

    Pour la seconde partie de l'exercice je n'ai conservé que les méthodes qui fonctionnent...
    J'ai instancié 2 Listes Chaînées.
    J'essaye d'ajouter une valeur.
    Evidemment je n'y arrive pas.
    Add ne fonctionne.
    Je ne pense pas que les méthodes explicitées ne le permettent.
    ??

    Merci pour le coup de pouce

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    class Cellule {
      public int valeur;
      public Cellule suivant;
     
      Cellule(int _valeur)
      {
        valeur = _valeur;
        suivant = null;
      }
    }
    class ListeChainee
    {
      public Cellule tete;
      ListeChainee()
      {
        tete = null;
     
      }
      public boolean Empty ()
      {
        if (tete == null)
        return true;
        else
        return false;
      }
      public int Head ()
      {
        if (Empty ())
        return -1;
        else
        return tete.valeur;
      }
      public Cellule Tail () {
        if (Empty ())
        return null;
        else
        return tete.suivant;
      }
      public boolean Cons (int e)
      {
      if(e>=0)
      {
        Cellule tmp = new Cellule (e);
        tmp.suivant = tete;
        tete=tmp;
        return true;
      }
      else{
        return false;
      }
      }
    	public int longueur() {
                    Cellule current = tete;
                    int longueur = 0;
                    while (tete!=null){
    			tete = tete.suivant;
                            longueur ++;
    		}
    		return longueur;
    	}
      	void afficher() {
     		Cellule cellule = tete;
    		while (cellule != null ) {
    			System.out.println(", " +cellule);
    			cellule = cellule.suivant;
    		}
        }
    }
    class Main {
    public static void Main (String[] args) 
    { 
      ListeChainee L1 = new ListeChainee();
      ListeChainee L2 = new ListeChainee();
     
      L1.add(3);
     
      System.out.println("L1" +" " + L1);
       }
    }

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/10/2005, 20h20
  2. Liste chaînée
    Par kilinette dans le forum C
    Réponses: 6
    Dernier message: 18/10/2005, 00h45
  3. Listes chaînées circulaires
    Par gege2061 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 11/05/2005, 14h44
  4. Construction de liste chaînées
    Par fomblardo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 15/03/2005, 22h19
  5. Insertion d'un noeud dans une liste chaînée
    Par habib106 dans le forum Assembleur
    Réponses: 8
    Dernier message: 07/04/2004, 23h34

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