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:
Jusque là, tout va bien, voici le code correspondant pour le moment:
Code :
- #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 :
- 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:
J'ai essayé d'implanter au code ci-dessus cette structure et les changements que cela entraîne, mais curieusement, je n'y parvient pas... Pouvez-vous me montrer svp?
Merci d'avance!