Rajout d'une structure (liste)
Bonjour,
J'ai créé jusque là un code consistant à répertorier différents objets, chacun contenu dans un maillon. En clair, voici un petit schéma:
http://free0.hiboox.com/vignettes/43...5e5278e6cc.png
Jusque là, tout va bien, voici le code correspondant pour le moment:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #include <stdio.h>
typedef struct objet {
int a;
int b;
} un_objet;
typedef struct maillon {
un_objet * infos;
struct maillon * suivant;
} un_maillon;
un_maillon *ajouterElement(un_maillon *le_maillon, un_objet *l_objet) {
un_maillon *nouveau_maillon = malloc(sizeof(un_maillon));
nouveau_maillon->suivant = NULL;
nouveau_maillon->infos = malloc(sizeof(un_objet));
nouveau_maillon->infos->a = l_objet->a;
nouveau_maillon->infos->b = l_objet->b;
if (le_maillon == NULL)
return nouveau_maillon;
else {
un_maillon *maillon_courant = le_maillon;
while (maillon_courant->suivant != NULL)
maillon_courant = maillon_courant->suivant;
maillon_courant->suivant = nouveau_maillon;
return le_maillon;
}
}
int main(void)
{
un_maillon *le_maillon = NULL;
un_objet l_objet = { 12, 56 };
le_maillon = ajouterElement(le_maillon, &l_objet);
printf("%d\t%d", le_maillon->infos->a, le_maillon->infos->b);
return 0;
} |
Seulement, on m'impose d'inclure dans mon code une structure liste supplémentaire définie ainsi:
Code:
1 2 3 4 5 6 7
| struct liste{
un_maillon * premier_maillon;
un_maillon * dernier_maillon;
un_maillon * maillon_courant; // pour se déplacer dans la liste sans perdre la place du premier maillon
}; |
On aurait alors un schéma comme le suivant:
http://free0.hiboox.com/vignettes/43...64359d2f3d.png
J'ai essayé d'implanter au code ci-dessus cette structure et les changements que cela entraîne, mais curieusement, je n'y parviens pas... :( Pouvez-vous me montrer svp?
Merci d'avance! :)