Allez on refait la procédure en français
Donc on veut insérer à la fin d'une liste, un nouvel élément.
Si la liste est vide, alors, ajouter à la fin, c'est la même chose qu'ajouter au début...
Si elle est pas vide, c'est différent.
Pour ajouter un dernier élément, on doit d'abord récupéré l'adresse du dernier élément, et oui l'adresse
Donc on la récupère avec la fonction que tu as proposé:
On a
Der = Dernier(liste);
Maintenant, que l'on sait que Der pointe sur le dernier élément de la liste, il suffit de lui ajouter un élément p.
Donc on a déclarer un pointeur p.
Mais il ne pointe nul part...
Donc bon ça sert un peu à rien...
On lui alloue alors une zone dans la mémoire.
On vient de créer une zone dans la mémoire, et p pointe sur cette zone.
P sera le nouveau dernier.
On sait qu'après le dernier, y'a plus rien du tout donc
p -> Lien = NULL; Pouf c'est la fin
On a déjà fait une bonne partie du travail, il manque juste le lien entre der et p
Parce que oui, l'ordi y'est pas super intelligent, il sait pas trop qu'on est entrain de faire une liste.
Donc der -> lien = p
Ce qui veut dire, la case après der c'est p.
Alors attention, ne surtout pas croire, que toutes les cases se suivent en mémoires, rien de tout ça, c'est pour ça qu'il faut utiliser les liens.
Pour compléter voici un petit dessin tout beau
[url="http://img150.imageshack.us/my.php?image=93810003zy8.jpg"]http://img150.imageshack.us/my.php?image=93810003zy8.jpg[/url]
NDLR : je vais au dodo, j'espère t'as compris un peu mieux (k)