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. cherchez nous des cours bidagogique de liste chainée en C piles et files svp
    adnene400@yahoo.fr
    1. heu ouais bien sur tu a dautres requettes dans ce genre a nous formuler?
      Bye
      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. 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. 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. Coucou,

            Merci à tous de m'aider, c'est vraiment sympa....
            Gros bisous....
            1. essai de le mettre en commentaire, il se peut qu'il y ai maintenant un autre include. ça devrait fonctionner
              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. si tu es sur windows avec devc++, il te faudra ajouter:
                  system("pause") a la fin du main()
                  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. attend j'installe devc++, ça faisait un bout de temps que je programme pas en c
                      1. 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. 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