# ############################################ # La programmation orienté objet # Implémentation d'une liste chaînée # Novembre 2025 # nsi.gecif.net # ############################################ # -------------------------------------------- # Définition d'une classe Perso : # -------------------------------------------- class Perso: """ La classe Perso attend ici 2 paramètres : le prénom (obligatoire) et un ami (optionnel) Exemple d'instanciation : p1=Perso("Oscar",p2)""" def __init__(self,p,a=None): self.prenom=p self.ami=a # -------------------------------------------- # Programme principal # -------------------------------------------- # Nous voulons impléménter cette liste chaînée où chaque personne a un ami : # Oscar -> Arlette -> Manuel -> Sabrina -> Antoine -> Arielle # Pour créer en une seule fois la liste chaînée on commence par la fin : p6=Perso("Arielle") # Arielle qui est en bout de chaîne n'a pas d'ami : son attribut "ami" reste à None p5=Perso("Antoine",p6) # l'ami d'Antoine est Arielle p4=Perso("Sabrina",p5) # l'ami de Sabrina est Antoine p3=Perso("Manuel",p4) # l'ami de Manuel est Sabrina p2=Perso("Arlette",p3) # l'ami d'Arlette est Manuel p1=Perso("Oscar",p2) # l'ami d'Oscar est Arlette # Exemples d'utilisations de la liste chaînée pour afficher différents informations : print("p1.prenom :", p1.prenom) print("p1.ami.prenom :", p1.ami.prenom) print("p1.ami.ami.prenom :", p1.ami.ami.prenom) print("p1.ami.ami.ami.prenom :", p1.ami.ami.ami.prenom) print("p2.prenom :", p2.prenom) print("p3.ami.prenom :", p3.ami.prenom) print("p3.ami.ami.prenom :", p3.ami.ami.prenom) print("p4.ami.ami.prenom :", p4.ami.ami.prenom) # -------------------------------------------- # Fin du programme principal # --------------------------------------------