Création liste chainée en C

Résolu
lisandra Messages postés 7 Statut Membre -  
 charif -
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. crack1
     
    ç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
    14
    1. colcol
       
      Bonjour je n'arrive pas lire correctement mon fichier pov en langage c autrement dit:parser le fichier pov en c
      0
  2. crack1
     
    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
    3
    1. hayet
       
      a ce que je peu triée une liste chainée
      0
    2. edson
       
      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
      0
  3. crack1
     
    attend j'installe devc++, ça faisait un bout de temps que je programme pas en c
    1
  4. lisandra Messages postés 7 Statut Membre 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
    1
    1. charif
       
      Merci bcp
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. poppyn73
     
    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
    0
  7. crack1
     
    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.
    0
  8. crack1
     
    si tu es sur windows avec devc++, il te faudra ajouter:
    system("pause") a la fin du main()
    0
  9. poppyn73
     
    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.
    0
  10. crack1
     
    essai de le mettre en commentaire, il se peut qu'il y ai maintenant un autre include. ça devrait fonctionner
    0
  11. lisandra Messages postés 7 Statut Membre 1
     
    Coucou,

    Merci à tous de m'aider, c'est vraiment sympa....
    Gros bisous....
    0
  12. lisandra Messages postés 7 Statut Membre 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....
    ???
    0
  13. rachid
     
    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
    0
  14. raaachid
     
    heu ouais bien sur tu a dautres requettes dans ce genre a nous formuler?
    Bye
    0
  15. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    c'est une requête assez normale ;-)

    Pour rachid

    tu peux regarder dans la FAQ CCM Listes simplement chaînées
    0
  16. adnene1987 Messages postés 1 Statut Membre
     
    cherchez nous des cours bidagogique de liste chainée en C piles et files svp
    adnene400@yahoo.fr
    0
  17. mawti
     
    donnez-moi svp un site pour le language c(cours+exercices corrigées)
    0