Voilà j'ai toujours fait mes listes chaînées sans sentinelle.
Un nouveau prof nous impose de les utiliser.
ça complique systématiquement tout mes algos, si bien que je me dis que je ne dois pas avoir compris le sens même de la sentinelle ( qui est sensée simplifiée les conditions d'arrêt).
exemple simple, insertion dans une liste chaînée triée. Sans sentinelle:
je compare jusqu'à trouver ou insérer, et si j'ai pas trouver quand j'arrive au bout de la liste, j'insère là.
Avec sentinelle, si j'ai pas trouvé à la fin, je vais "reboucler" sur le début ( génial...) à moins de rajouter un test qui peut être de la forme :
- Conserver l'adresse de la sentinelle pour vérifier à quel môment je repasse dessus ( assez nul quand même, surtout si on veut faire une récurence, on va se le trimballer tout le long alors que sans sentinelle on aurait pas eu cette variable, il suffisait de comparer avec NULL sans se poser de question).
-initialiser les données de la sentinelle à une valeur particulière (super nul puisque d'un point de vue objet c'est immonde, l'initialisation et le tests sont dans deux fonctions différentes).
Merci d'avance pour vos lumières, jeune jedi en train de basculer dans le côté obscur cherche maître yoda.
Partager