Questionnement listes chaînées

je recherche activement une modification du programme ci dessous pour qu'il permette de faire une liste chaînée par derrière (en remplissant la liste par la fin, et par le milieu(si possible))..
(je suis trèes novice!)

#include <stdio.h>

struct personne
{
char nom[20];
struct personne *psuivant;
};
typedef struct personne pers;
int main()
{
int i;
pers *debut=NULL;
pers *nouveau;
pers *dernier;
for (i=0;i<3;i++)
{
nouveau=(pers*)(malloc(sizeof(pers)));
scanf("%s",nouveau->nom);
nouveau->psuivant=debut;
debut=nouveau;
}
nouveau=debut;
while (nouveau->psuivant !=NULL)
{
printf("%s \n",nouveau->nom);
nouveau=nouveau->psuivant;
}
printf("%s \n",nouveau->nom);
printf("fin de la chaîne");
return 0;
}

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    t'as demandé au prof?

    Choubanimal : 
    Recherche producteur pour superproduction ou + si affinités
    1. oui mon ptit gars, et voilà ça réponse :

      #include <stdio.h>

      struct personne
      {
      char nom[20];
      struct personne *psuivant;
      };
      typedef struct personne pers;
      int main()
      {
      int i;
      pers *debut=NULL;
      pers *nouveau;
      pers *dernier;
      debut=malloc(sizeof(pers*));
      scanf("%s",debut->nom);
      debut->psuivant=NULL;
      dernier=debut;
      for (i=0;i<3;i++)
      {
      nouveau=malloc(sizeof(pers));
      scanf("%s",nouveau->nom);
      nouveau->psuivant=NULL;
      dernier->psuivant=nouveau;
      dernier=nouveau;
      }
      nouveau=debut;
      while (nouveau != NULL)
      {
      printf("%s \n",nouveau->nom);
      nouveau=nouveau->psuivant;
      }
      printf("%s \n",nouveau->nom);
      printf("fin de la chaîne");
      return 0;
      }
  2. tres bien , au lie de passer par devanbt, la liste chainee passe apr deriiere et ainsi ya as de probleme de circulation sur le peripherique,
    Tu peux aussi avoir des reponses sur caramail.com
    Le chat regorge d'intellos en tout genre.
    1. explique
      1. c facile, a cause de la priorite a droite, tu peux pas passer par devant ; donc pour pouvoir t'inserer facilement dans la circulation , tu passe par derriere !
        tu pouuras ainsi t'eviter un croisement dangereux !
        Tes liste chainees passeront en securite sur le peripherique
    2. vous vous foutez de moi.Demander à demander à votre deme répondre
      1. mais non, pas du tout, c'est une métaphore, c'est imagé...
        t'as déjà vu des pointeurs ce balladant sur le périph', toi?

        hopla fischer noch a bier!!!