Problème avec Liste chainée et les POINTEURS !
Publié : sam. 13/janv./2007 4:17
Je viens d'apprendre à utiliser les listes chainées, mais je bloque sur une chose : J'arrive à la créer, à ajouter en fin de liste, mais dès que je veux par exemple ajouter à la position deux (juste après le head ou la tete) ca coince, est ce que quelqu'un aurait la gentillesse de me filer un coup de pouce.
Merci !
Voilà :
Merci !
Voilà :
Code : Tout sélectionner
;####################
Structure Repertoire
nom.s
age.w
*next.Repertoire
EndStructure
NewList MaListe.Repertoire()
;initialisation d'une liste
Define.Repertoire *head, *element
*head = AllocateMemory(SizeOf(Repertoire))
*head\next = #Null
;---------;ajoute element à la liste (1)
*element = AllocateMemory(SizeOf(Repertoire))
*head\next = *element
*element\next=#Null
;remplissage
*element\nom = "Titi"
*element = *head
While *element\Next
*element = *element\next
Wend
;--------;ajoute element à la liste (fin de liste : (2))
*element\next = AllocateMemory(SizeOf(Repertoire))
*element =*element\next
*element\next=#Null
;remplissage
*element\nom = "Toto"
;--------;ajoute element à la liste (3)
*element\next = AllocateMemory(SizeOf(Repertoire))
*element =*element\next
*element\next=#Null
;remplissage
*element\nom = "Lolo"
;######### C'EST ICI QUE JE COINCE ################
;----- Ajoute en Deuxième position
*element = AllocateMemory(SizeOf(Repertoire))
;????
*element\next = *head\Next
*head\next = *element
;remplissage
*element\nom = "Nono" ;----------->Nono SE MET en 1er alors qu'il devrait etre en seconde position
;--Où est l'erreur ? SVP
;##################################################
;liste les elements
*element = *head
While *element\Next
*element = *element\next
Debug *element\nom
Wend