supprimer les repetitions dans une liste chaînée
Bonjour
je doit écrire une fonction qui supprime les répétitions dans une liste chainée
Code:
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:
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