Bonjour,

voici un exemple de code en c qui supprime toutes les occurrences d'un élément dans une liste simplement chaînée :
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
 
void removeOccElem(cel** l , int elem){
     cel* ptr = *l ;
     cel* temp ;
 
     //l'element à supp est dans l'en-tete de la liste
     while(ptr  && ptr->elem==elem){
               *l= ptr->suiv ;
               free(ptr);
               ptr = *l ;
     }
     // supp des autres occurences
     while(ptr->suiv){
                 temp=ptr->suiv ;
                if(temp->elem==elem){
                      ptr->suiv=temp->suiv ;
                      free(temp);                                  
                }else{
                      ptr=ptr->suiv; 
                }
 
     }
}
Comment puis-je optimiser ce code ?
Merci
E. Bazoga