Création liste chainée en C
Résolu
lisandra
Messages postés
7
Statut
Membre
-
charif -
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
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
-
ç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 -
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 -
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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. -
-
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. -
essai de le mettre en commentaire, il se peut qu'il y ai maintenant un autre include. ça devrait fonctionner
-
Coucou,
Merci à tous de m'aider, c'est vraiment sympa....
Gros bisous.... -
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....
??? -
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 -
-
Salut,
c'est une requête assez normale ;-)
Pour rachid
tu peux regarder dans la FAQ CCM Listes simplement chaînées -
cherchez nous des cours bidagogique de liste chainée en C piles et files svp
adnene400@yahoo.fr -
-