Insertion en tête de liste chainée

Résolu
Auguste23 Messages postés 5 Statut Membre -  
yg_be Messages postés 24281 Statut Contributeur -
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
A voir également:

1 réponse

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour,
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?
0
Auguste23 Messages postés 5 Statut Membre
 
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
0
yg_be Messages postés 24281 Statut Contributeur 1 584 > Auguste23 Messages postés 5 Statut Membre
 
j'ai l'impression que tu ne partages qu'une partie de ton code.
0
Auguste23 Messages postés 5 Statut Membre > yg_be Messages postés 24281 Statut Contributeur
 
Voilà 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 ) ) 
0
yg_be Messages postés 24281 Statut Contributeur 1 584 > Auguste23 Messages postés 5 Statut Membre
 
ton problème est dans la fonction afficherDebFin: examine là de plus près.
0
Auguste23 Messages postés 5 Statut Membre > yg_be Messages postés 24281 Statut Contributeur
 
Merci beaucoup, j'ai trouvé mon erreur !
0