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 du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    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 du Club
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Points : 48
    Points
    48
    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 éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    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
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

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