NSI (terminale) · Chapitre 9 · Exercice d'entraînement
Une liste chaînée objet
La programmation orientée objet · Structures de données en POO · niveau 3 (difficile)
Énoncé
Une liste chaînée objet. Une liste chaînée est formée de maillons ; chaque maillon contient une valeur et une référence vers le maillon suivant (None pour le dernier).
class Maillon:
def __init__(self, valeur, suivant=None):
self.valeur = valeur
self.suivant = suivant
Écrire une classe ListeChainee, dont l'unique attribut tete désigne le premier maillon (None si la liste est vide), avec :
- une méthode
ajouter_en_tete(valeur)en temps constant ; - la méthode
__len__; - la méthode
__str__, qui renvoie par exemple3 -> 2 -> 1, ouvide; - une méthode
inverser()qui renverse l'ordre de la liste sans créer de nouveau maillon, en modifiant les références.
Donner la complexité de chaque méthode.
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.