/* structure article */ typedef struct str_personne { int id; //id de la personne char * nom; char * prenom; int age; }Personne;
typedef struct str_p_personnes { Personne p; struct str_p_personnes *precedent; }Spile, *P_Personnes;
void impression(P_Personnes pers) { Nat nb = hauteur(p); //hauteur de la pile Chaine noms [nb]; //tableau de stockage des categories Personne p = initialisation(); P_Personnes q; int i; for(i=0;i<nb;i++)//on sauvegarde dans une pile temporaire { p = sommet(pers); q=empiler(q,p); pers=depiler(pers); } for(i=0;i<nb;i++) { p = sommet(q); pers=empiler(pers,p); while(pers.nom!=noms[i]) { i++; //c'est ici que je cherche à n'avoir qu'une seule fois le nom } q=depiler(q); } for(i=0;i<nb;i++) { printf("Nom %s\n",noms[i]); Nat j; for(j=0;j<nb;j++) { p = sommet(pers); q=empiler(q,p); pers=depiler(pers); } Nat k; for(k=0;k<nb;k++) { p = sommet(q); pers=empiler(pers,p); if(p.nom==noms[i]) { printf("%d\n",p.prenom); } q=depiler(q); } printf("\n"); } }