Bonjour
je doit écrire une fonction qui supprime les répétitions dans une liste chainée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
typedef struct cel 
{
  int val;
  struct cel * suivant;
} liste;
 
typedef liste* PListe ;
 
int taille(PListe L);//return la taille de la liste
 
Liste suprimer(PListe L, int k);// supprimer l element du rang k
j ai écrit cette fonction mais ça marche 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
23
24
25
26
27
28
29
 
 
PListe supprimer_repe(PListe L)
 {
     PListe p=NULL,pc=NULL,  prec=NULL;
 int k=0,i;
   p = L ;
 
   while ( p != NULL )
     { k++;
         pc=p->suivant ; 
         prec = p ;
 
for(i=k;k<taille(L);i++)
            {
 
                if (pc->val == p->val)
L=supprimer(L,i);
                else
                     prec = pc ;
 
                pc = pc->suivant ;
            }                
 
         p=p->suivant; 
    }
 
return L;
}
SVp aider moi