Exercice : Fonctions de recherche#
Les fonctions permettant d’extraire des valeurs d’une liste chaînée sont aussi très variées. Elles peuvent permettre de retrouver une valeur en fonction de sa position dans la liste (en tête ou en queue par exemple) ou en fonction de sa valeur (minimum ou maximum) par exemple.
Dans notre cas, nous nous contenterons d’une seule fonction mais n’hésitez pas à en définir d’autres pour vous entraîner.
Définissez une fonction qui renvoie la plus grande valeur stockée dans une liste donnée :
int chercher_maximum(liste *l);
Si la liste est vide, on lèvera l’exception suivante:
throw invalid_argument("la liste doit être non vide");
BEGIN SOLUTION
int chercher_maximum(liste *l) { if (l->nbelem == 0) throw invalid_argument("la liste doit être non vide"); int max = l->tete->val; elem *e = l->tete->next; while (e != NULL) { if (e->val > max) max = e->val; e = e->next; } return max; }
END SOLUTION