Salut tous,
Eh bien je risque de poser quelques questions bien stupides (trop stupides en effet !), mais comme il le faut pour apprendre, allons-y, j'espère que vous serez nombreux à m'aider

Bon je dois réaliser une liste chainée dont les éléments sont les suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
typedef struct Element Element;
struct Element
{ char cin[10];
  char *nom;
  int age;
  struct Element *suivant;
};
je veux en premier lieu créer une fonction qui fait l'ajout trié, c'est à dire : ajoute exactement dans la position où le nouvel élément dois être insérer, moi je fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void ajoutrie(Element **liste, Element e) 
{
       // cas special pour la tête de la liste "liste"
       if (liste == NULL || liste->cin >= e->cin) 
        {
          e->suivant = suivant;
          liste = e;
          }
       else 
        {
      //  localiser l'Element précedent au lieu d'insertion
          Element* p = liste;
          while (p->suivant!=NULL && p->suivant->cin < e.cin) 
          {
                p = p->suivant;
                }
          e->suivant = p->suivant;
          p->suivant = e;
}
}
que le compilateur ne trouve pas très joli toutefois ! J'imagine qu'il a raison (bon j'ai pas encore fait le test sur une liste, mais lorsque j'ai compilé ça a indiqué beaucoup d'erreur de syntaxe que j'arrive pas à relever )

autre fonction que je veux réaliser est l'affichage et je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
void afficher(Element **liste)
{
     Element *p = liste;//ce pointeur nous servira pour parcourire la liste
     while(p!=NULL)
     {
                   printf("%s :\n",p.cin);
                   printf("%s :\n",p.nom);
                   printf("%d :\n",p.age);
                   p=p.suivant;//de quoi avancer une case
                   };
j'imagine quand même que celle là je l'ai correcte, non ?

Bon y a trois autres fonctions, mais on en discutera une fois j'aurai essayé, voilà, merci à tous