# ############################################ # 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 un seul paramètre : le prénom Exemple d'instanciation : p1=Perso("Oscar")""" def __init__(self,p): self.prenom=p self.ami=None # l'attribut "ami" permettra de lier les objets entre eux # -------------------------------------------- # Programme principal # -------------------------------------------- # Nous voulons impléménter cette liste chaînée où chaque personne a un ami : # Oscar -> Arlette -> Manuel -> Sabrina -> Antoine -> Arielle # On commence par créer les 6 instances de la classe Perso qui sont pour l'instant intépendantes : p1=Perso("Oscar") p2=Perso("Arlette") p3=Perso("Manuel") p4=Perso("Sabrina") p5=Perso("Antoine") p6=Perso("Arielle") # Une fois les 6 objets créés on va les lier entre eux en renseignant leur attribut "ami" : p1.ami=p2 # l'ami d'Oscar est Arlette p2.ami=p3 # l'ami d'Arlette est Manuel p3.ami=p4 # l'ami de Manuel est Sabrina p4.ami=p5 # l'ami de Sabrina est Antoine p5.ami=p6 # l'ami d'Antoine est Arielle # Remarque : Arielle qui est en bout de chaîne n'a pas d'ami : son attribut "ami" reste à None # 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 # --------------------------------------------