Création liste chainée en C

Résolu
Bonjour à tous,

Je dois écrire une procédure qui permet de créer une liste. Cette procédure peut par exemple se comporter comme suit :
− Demander à l’utilisateur la longueur désirée de la liste : c’est à dire la cardinalité
− Tant que l’on n’a pas atteint cette cardinalité, on créera un maillon et on affectera une valeur au champ donne : cette valeur sera déterminée par l’utilisateur
− Une fois la cardinalité atteinte, la procédure s’arrête
Pour vérifier que notre précédente procédure fonctionne on écrira également une procédure itérative void affiche(t_Liste l) ; qui affiche les éléments de la liste l.

J'avoue que je ne m'en sors pas alors si quelqu'un pouvais m'aider à faire ce programme, je lui en serait très reconnaissant.

Merci beaucoup à tous et à bientot j'espere....

Lisandra
Configuration: Pc portable
Windows xp

17 réponses

  1. ça fait pas serieux de demader l'adresse mail, bon voici un exemple de code:
    #include <stdio.h>
    #include <conio.h>
    #include <ctype.h>
    #include <alloc.h> /*ou stdlib.h*/
    struct page {int val; struct page *suivant; };
    struct page *premier;

    int encore(void) /* demande si on en veut encore*/
    {
    printf("encore (O/N) ? ");
    return(toupper(getche())= ='O');
    }
    void lecture(void)
    {
    struct page *precedent,*nouveau;
    premier=(struct page *)malloc(sizeof(struct page));
    puts("entrez votre premier entier");
    scanf("%d",&premier->val);
    precedent=premier;
    while (encore())
    {
    nouveau=(struct page *)malloc(sizeof(struct page));
    precedent->suivant=nouveau;
    precedent=nouveau;
    puts("\nentrez votre entier");
    scanf("%d",&nouveau->val);
    }
    precedent->suivant=NULL;
    }
    void affiche(struct page *debut)
    {
    printf("\nliste : ");
    while(debut!=NULL)
    {
    printf("%d ",debut->val);
    debut=debut->suivant;
    }
    printf("\n");
    }
    int main(void)
    {
    lecture();
    affiche(premier);
    }

    si tu as d'autres questions, on est a ta disposition
    1. Bonjour je n'arrive pas lire correctement mon fichier pov en langage c autrement dit:parser le fichier pov en c
  2. salut,

    c pas très dur, envoie moi ton adresse et je t'enverrai un document word t'explicant le fonctionnement d'une liste. Mon adresse est: benson_ondo@hotmail.com
    1. a ce que je peu triée une liste chainée
    2. je voudrais un programme c de creation de liste chaine le plus simple qu il soit et de lecture des elements de cette liste . merci de me repondre
  3. attend j'installe devc++, ça faisait un bout de temps que je programme pas en c
    1. Il y avait juste une accolade en trop....

      voici la procedure :

      #include <stdio.h>
      #include <conio.h>
      #include <ctype.h>
      /* #include <alloc.h> ou stdlib.h*/
      struct page {int val; struct page *suivant; };
      struct page *premier;

      int encore(void)
      {
      printf("encore (O/N) ? ");
      return(toupper(getche())=='O');
      }
      void lecture(void)
      {
      struct page *precedent,*nouveau;
      premier=(struct page *)malloc(sizeof(struct page));
      puts("entrez votre premier entier");
      scanf("%d",&premier->val);
      precedent=premier;
      while (encore())
      {
      nouveau=(struct page *)malloc(sizeof(struct page));
      precedent->suivant=nouveau;
      precedent=nouveau;
      puts("\nentrez votre entier");
      scanf("%d",&nouveau->val);
      }
      precedent->suivant=NULL;
      }
      void affiche(struct page *debut)
      {
      printf("\nliste : ");
      while(debut!=NULL)
      {
      printf("%d ",debut->val);
      debut=debut->suivant;
      }
      printf("\n");
      }
      int main(void)
      {
      lecture();
      affiche(premier);

      system("PAUSE");
      return 0;
      }

      Merci encore a tout ceux qui m'ont aider...

      Lisandra
    2. J'ai essayer de compiler ton code et il y a deux erreurs ! Qu'en penses-tu ?

      creation_listechainee.c: In function `encore':

      creation_listechainee.c:14: error: syntax error before '=' token

      make.exe: *** [creation_listechainee.o] Error 1

      Execution terminated
      1. c encore moi, enleve l'espace entre les deux == dans la fonction encore().
        mais je pense que le plus important est de comprendre la logique.
        1. si tu es sur windows avec devc++, il te faudra ajouter:
          system("pause") a la fin du main()
          1. T'as raison ! C'était dans l'instruction :
            return(toupper(getche())= ='O');

            Il ne reste plus qu'une erreur due au manque du fichier d'en-tête alloc.c
            je n'ai que 32 fichiers d'en-têtes !

            \Dev-Cpp\Packages\creation_listechainee.c C:\Dev-Cpp\Packages\C alloc.h: No such file or directory.
            1. essai de le mettre en commentaire, il se peut qu'il y ai maintenant un autre include. ça devrait fonctionner
              1. Coucou,

                Merci à tous de m'aider, c'est vraiment sympa....
                Gros bisous....
                1. C encore moi, alors voila g une erreur sur le system pause je comprends pas... g ecrit system("PAUSE"); a la fin du main et ca me met :
                  46 C:\Documents and Settings\Anto\Bureau\main.c syntax error before string constant
                  46 C:\Documents and Settings\Anto\Bureau\main.c [Warning] data definition has no type or storage class
                  C:\Documents and Settings\Anto\Bureau\Makefile.win [Build Error] [main.o] Error 1

                  pourtant le programme est bon ya pa d'autre erreur....
                  ???
                  1. bonjour
                    j'ai le plaisier de vous demander de me anvayer une documentation sur les listes chainées et la fonction éclatée
                    merci d'avance
                    1. heu ouais bien sur tu a dautres requettes dans ce genre a nous formuler?
                      Bye
                      1. cherchez nous des cours bidagogique de liste chainée en C piles et files svp
                        adnene400@yahoo.fr