Voilà une fonction qui répond à la question suivante:
Ecrire une fonction
squeeze qui prend en arguments deux listes d'entiers vues en cours (ne les
redéfinissez pas, ainsi que le cons et les fonctions d'extraction) et qui détruit dans le premier tous ses entiers qui n'appartiennent pas au second.
Est-ce que qq1 peut me corriger? merci d'avance
void(liste l1, liste l2) {
liste temp=(liste)malloc(sizeof(struct sliste)) ;
liste l=(liste)malloc(sizeof(struct sliste)) ;
int couleur=0;
while(l2!=NULL)
if(VAL(l1)==VAL(l2))
couleur=1;
if (couleur==0)
VAL(l)=VAL(l1);
while(l1 !=NULL)
while(l2 !=NULL)
{
if(VAL(SUIVANT(l1))==VAL(l2))
couleur=1;
if (couleur==0)
{
temp=SUIVANT(SUIVANT(l1));
SUIVANT(l1)=temp ;
free(temp) ;
}
SUIVANT(l) =(liste)malloc(sizeof(struct sliste)) ;
SUIVANT(l) =l1;
return l1;
}
où SUIVANT et VAL sont les pseudo-fonctions qui retourne respectivement la liste suivante(qui est le2ème champs de la struct sliste) et la valeur de lentier(qui est le 1er champs de la struct sliste)
et liste est défini ainsi :typedef struct sliste * liste
Afficher la suite