Insertion en tête de liste chainée
Résolu
Bonjour,
Je commence avec les listes chainées et je n'arrive pas à créer une fonction qui insère une valeur en tête de liste et retourne la nouvelle liste chainée. Je ne vois pas où est mon erreur. Merci.
Voici mon programme:
class cMaillon :
def __init__(self , valeur ):
self.val = valeur
self.suiv = None
M1 = cMaillon(-10)
M2 = cMaillon(4)
M3 = cMaillon(21)
tete = M1
queue = tete
queue.suiv = M2
queue = queue.suiv
queue.suiv = M3
queue = queue.suiv
def ajouterEnTete ( L, X ):
nouveau = cMaillon(X)
nouveau.suiv = L
return nouveau
Je commence avec les listes chainées et je n'arrive pas à créer une fonction qui insère une valeur en tête de liste et retourne la nouvelle liste chainée. Je ne vois pas où est mon erreur. Merci.
Voici mon programme:
class cMaillon :
def __init__(self , valeur ):
self.val = valeur
self.suiv = None
M1 = cMaillon(-10)
M2 = cMaillon(4)
M3 = cMaillon(21)
tete = M1
queue = tete
queue.suiv = M2
queue = queue.suiv
queue.suiv = M3
queue = queue.suiv
def ajouterEnTete ( L, X ):
nouveau = cMaillon(X)
nouveau.suiv = L
return nouveau
1 réponse
-
Contributeurbonjour,
peux-tu poster à nouveau ton code en utilisant la coloration syntaxique proposée par le forum?
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
"je n'arrive pas à créer une fonction": que se passe-t-il avec ton code?-
Merci pour ta réponse
class cMaillon : def __init__(self , valeur ): self.val = valeur self.suiv = None M1 = cMaillon(-10) M2 = cMaillon(4) M3 = cMaillon(21) tete = M1 queue = tete queue.suiv = M2 queue = queue.suiv queue.suiv = M3 queue = queue.suiv def ajouterEnTete ( L, X ): nouveau = cMaillon(X) nouveau.suiv = L return nouveau
le programme me renvoie la liste sans avoir ajouté la valeur en tête de liste -
Contributeur@Auguste23j'ai l'impression que tu ne partages qu'une partie de ton code.
-
@yg_beVoilà mon code en entier. Comme je n'ai pas de problème sur l'autre fonction, je n'ai pas voulu alourdir le message.
class cMaillon : def __init__(self , valeur ): self.val = valeur self.suiv = None M1 = cMaillon(-10) M2 = cMaillon(4) M3 = cMaillon(21) tete = M1 queue = tete queue.suiv = M2 queue = queue.suiv queue.suiv = M3 queue = queue.suiv def afficherDebFin ( L ): courant = tete while courant != None: print ( courant.val ) courant = courant.suiv def ajouterEnTete ( L, X ): nouveau = cMaillon(X) nouveau.suiv = L return nouveau afficherDebFin ( ajouterEnTete( tete, 31 ) ) -
Contributeur@Auguste23ton problème est dans la fonction afficherDebFin: examine là de plus près.
-
@yg_beMerci beaucoup, j'ai trouvé mon erreur !
-