Insertion en tête de liste chainée

Résolu
Auguste23 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   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 4 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Auguste23 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai l'impression que tu ne partages qu'une partie de ton code.
0
Auguste23 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Auguste23 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
ton problème est dans la fonction afficherDebFin: examine là de plus près.
0
Auguste23 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci beaucoup, j'ai trouvé mon erreur !
0