Posez votre question Signaler

Création liste chainée en C [Résolu]

lisandra 7Messages postés 4 mai 2005Date d'inscription - Dernière réponse le 29 mai 2011 à 17:13
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
Lire la suite 

Création liste chainée en C »

21 réponses
Réponse
+14
moins plus
ç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
colcol - 10 nov. 2010 à 16:30
Bonjour je n'arrive pas lire correctement mon fichier pov en langage c autrement dit:parser le fichier pov en c
Ajouter un commentaire
Réponse
+3
moins plus
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
hayet - 6 juin 2006 à 10:09
a ce que je peu triée une liste chainée
edson - 21 déc. 2009 à 09:59
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
Ajouter un commentaire
Réponse
+1
moins plus
attend j'installe devc++, ça faisait un bout de temps que je programme pas en c
Ajouter un commentaire
Réponse
+1
moins plus
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
charif - 29 mai 2011 à 17:13
Merci bcp
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
si tu es sur windows avec devc++, il te faudra ajouter:
system("pause") a la fin du main()
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
essai de le mettre en commentaire, il se peut qu'il y ai maintenant un autre include. ça devrait fonctionner
Ajouter un commentaire
Réponse
+0
moins plus
Coucou,

Merci à tous de m'aider, c'est vraiment sympa....
Gros bisous....
Ajouter un commentaire
Réponse
+0
moins plus
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....
???
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
heu ouais bien sur tu a dautres requettes dans ce genre a nous formuler?
Bye
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

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

Pour rachid

tu peux regarder dans la FAQ CCM Listes simplement chaînées
Ajouter un commentaire
Réponse
+0
moins plus
cherchez nous des cours bidagogique de liste chainée en C piles et files svp
adnene400@yahoo.fr
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

regarde ici
http://www.commentcamarche.net/faq/sujet 8283 les piles
http://www.commentcamarche.net/faq/sujet 8282 les files
Ajouter un commentaire
Réponse
+0
moins plus
donnez-moi svp un site pour le language c(cours+exercices corrigées)
Ajouter un commentaire
Ce document intitulé « Création liste chainée en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?