Pour comprendre, dans un premier temps, évite de te casser la tete avec 2 structures. tu n´en fais qu´une seule que tu appelles "maillon"
struct maillon
{
int element;
struct maillon* next;
};
on dit, dans cet exemple, que ce sera une liste chainée qui gardera une liste de int en mémoire.
Chaque maillon contient donc 2 données :
le int qu´il garde,
un pointeur vers le maillon suivant.
tu n´as qu´a dire que ta liste est un pointeur sur le premier maillon.
La liste s´arrete quand maillon::next == NULL.
a toi de faire une fonction qui, pour ajouter un maillon, joue sur les champs next.
Une liste de des multiples avantages par rapport a un tableau :
- tu mets autant d´élements que tu veux sans avoir a réallouer tout un tableau.
- l´insertion ou la suppresion d´élements est rapide
par contre, inconvénient majeur :
- l´acces a un élément nécessite de parcourir toute la liste jusqu´a l´élement.