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.
;####################
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
Là où c'est génial dans ta programmation , c'est que tu as pensé meme au cas ou on insere alors que la liste est vide (ca peut toujours servir).
Une petite question, pour ceux qui programment depuis longtemps :
Avec les pointeurs, il y a "l'exercice" des listes chainées pour apprendre à les maitriser, des arbres binaires, mais il y aurait il autre chose (de ce style)
En fait je coince sur une chose. Je sais ca peut paraitre bete mais pour "position-1" comment le compilateur sait qu'il sagit de la chaine ?
Pour ce qui est de la phrase, c'est vrai que je suis admiratif des "mozart" du code. Pour moi une programme bien fait est une "oeuvre rationnelle", et les bons (quand le code est concis, commenté et bien structuré) sont pour moi des artistes. En France (hm !) on parle des arts de la table et on ne pense jamais aux génies de l'informatique qui révolutionnent notre quotidien. D'ailleurs souvent ils sont en plus très humain et très spirituels (Steeve Jobs à ses début a été ramassé des pomme pendant un an en Inde.
si je prend x.trucmachin l'ordi c'est de quoi je parle, mais la je ne comprend pas, position n'est rien d'autre qu'une variable locale (enfin a premiere vue). En fait voila, pour utiliser le bon terme, il n'y a aucun typage pour position et le compilateur sait qu'il sagit de la liste chainée. Et encore autre chose quand l'élément est insérré est ce que le pointeur continu jusqu'au bout de la liste ?