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

Algorithmes et structures de données Discussion :

Suppression d'un element avec liste chainee


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Par défaut Suppression d'un element avec liste chainee
    Bonjour tout le monde

    Je dois creer une fonction qui en fonction du parametre fournit doit supprimer l element de la liste chainee.

    La methode getNext permet de pointer sur le suivant et la methode getId permet recuperer la valeur.
    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
    static LinkedList removeId(LinkedList l, int i)
    	{
     
     
    		LinkedList liste=l;
    		LinkedList old=null;
    		while(liste!=null)
    		{
     
    				old=liste.getNext();
     
    			if(old.getId()==i)
    			{
    				if(old.getNext()!=null)
    				{
    					old=old.getNext();
    				}
    			}
     
     
    		liste=old;
     
    			afficher("valeur"+liste.getId());
    				if(liste.getNext()==null)
    				{
     
    					break;
    				}
     
    		}
     
     
     
    		return liste;
    Lorsque j appelle la methode dans le programme principal au niveau de la l affichage j'ai 2,3,4,5 et au debut lorsque j'ai alimenter ma liste chaine j'avais: 0,1,2,3,4,5, c'est qu'il neglige le 0,

    Je vous remercie de votre aide

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par gentil Voir le message
    La methode getNext permet de pointer sur le suivant et la methode getId permet recuperer la valeur.
    1. il faudrait aussi une methode pour spécifier le nouvel element suivant.
    2. c'est normal que getNext retourne une LinkedList ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut
    Il me semble que tu fait un getNext dés le dbus n, donc tu ignore le premier élément de chaine non ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ça se passe ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		LinkedList liste=l;
    		LinkedList old=null;
    		while(liste!=null)
    		{
     
    				old=liste.getNext();
    tu veux démarrer au début de la liste, et tu fais getnext tout de suite.. comme l'a dit sylverspoon..

    La bonne méthode est :

    pseudo-code ()

    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
    Elt = liste 
     
    Tant que elt non null
     
         Si elt->id = numero
     
              si elt->precedent non null
                  elt->precedent->suivant = elt->suivant
     
              si elt->suivant non null
                  elt->suivant->precedent = elt->precedent
     
              libere element
     
              sortie
     
        Fin si
     
    Fin tant que

Discussions similaires

  1. [GTK] Piles avec listes chainees
    Par BB008 dans le forum GTK+
    Réponses: 8
    Dernier message: 02/11/2010, 18h49
  2. Réponses: 2
    Dernier message: 07/04/2010, 22h36
  3. Probleme avec les double Liste chainees
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 12/07/2005, 17h22
  4. [LG]Listes chainées avec pointeur
    Par PaowZ dans le forum Langage
    Réponses: 2
    Dernier message: 17/02/2004, 19h49
  5. [LG]suppression dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 9
    Dernier message: 16/12/2003, 21h20

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