Je pensais que cela devrait fonctionner correctement ... Je ne suis pas sûr de ce qui ne va pas avec ça? Voici un extrait de mon code. Il est supposé retourner 0 si la liste donnée d'entiers ne sont pas dans l'ordre croissant et retourner 1 s'il est dans l'ordre croissant.Liste liée: comment faire trieur de trieur en C?
struct Node{
int data;
Node *pNext;
};
int isItSorted(Node *pHead){
while(pHead != NULL){
if(pHead->data > pHead->pNext->data)
return 0;
else
return 1;
pHead = pHead->pNext;
}
return 1;
}
Votre code rencontrera un comportement indéfini parce que vous ne vérifiez pas que 'pHead-> pNext! = NULL' avant de le déréférencer. Cela peut être la cause de votre problème. – Dai
En outre, veuillez publier votre code qui crée la liste - il est possible que vous n'initialisiez pas les champs correctement (par exemple, en définissant explicitement 'pNext' à' NULL'). – Dai
Votre code n'exécutera jamais plus d'une itération de la boucle, car il y a un retour inconditionnel dans le corps de la boucle. –