Bonjour,
Je devais créer une fonction qui renvoie 1 si deux listes chainées sont égales et 0 si différentes.
J’avais fait un premier code qui marchait pas et j’ai réussi à le changer un peu mais je ne comprends pas pourquoi il ne marchait pas.
voilà le code initial (qui ne fonctionne pas) :
1 2 3 4 5 6 7 8 9 10 | int egal(Liste l1, Liste l2) { if((l1==NULL)&&(l2==NULL)) return 1; if((l1==NULL)||(l2==NULL)) return 0; if(l1->contenu!=l2->contenu) egal(l1->suivant,l2->suivant); return 0; } |
voilà le code qui fonctionne:
1 2 3 4 5 6 7 8 9 10 | int egal(Liste l1, Liste l2) { if((l1==NULL)&&(l2==NULL)) return 1; if((l1==NULL)||(l2==NULL)) return 0; if(l1->contenu!=l2->contenu) return 0; egal(l1->suivant,l2->suivant); } |
Le premier code me renvoient des 0 lorsqu’ils ne devrait pas : J’ai deux listes chainées qui contiennent toutes les deux 1, 2, 3, 4, 5 et NULL pour la fin de la chaîne.
Merci d’avance !
+0
-0