Bonjour,
Je n'arrive pas à créer un algo itératif pour supprimer toutes les occurrences d'un element dans une liste chainée.
voici mon code:
L'affichage avant suppression:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Liste{ int element; Liste suivant; .... methode qui affiche une liste... }//fin class public class Exple{ public static void(String [] args){ Liste ln=new Liste(1,new Liste(2,new Liste(3,new Liste(1, new Liste(1,new Liste(4,null))))); } }
1 2 3 1 1 4
après suppression
je devrais avoir uniquement: 2 3 4
or je n'arrive à supprimer que le 1er élement.
Voici la methode:
Je vous remercie d'avance, mais je n'y arrive pas
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 public Liste suppression(int e){ Liste parcours=this; Liste precedent=null; //tant que je ne suis pas à la fin de la liste et que je n'ai pas trouve e while(parcours!=null && parcours.element !=e){ //je parcours la liste en avançant mes 2 pointeurs precedent=parcours; parcours=parcours.suivant; } //je sors de la boucle si j'ai trouvé e et que je ne suis pas en fin de liste if(parcours!=null && parcours.element==e){ if(precedent==null) //si la liste n'a qu'un élement { return parcours.suivant; //je retourne l'element e } else{ precedent=precedent.suivant; return this; } else return this; }
Partager