Rechercher : dans
Par :

Création liste chainée en C

Dernière réponse le 25 mar 2008 à 18:24:29 lisandra, le 4 mai 2005 à 22:23:36 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Création liste chainée en C » dans :
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Introduction à la STL en C++ (standard template library) VoirIntroduction Principales classes de la STL std::pair std::list std::vector std::set std::map Les iterators iterator et const_iterator reverse_iterator et const_reverse_iterator Les algorithmes ...
Liste doublement chaînée VoirLISTES DOUBLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes doublement chaînées A. Initialisation B. Insertion d'un élément dans la...
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

crack1, le 5 mai 2005 à 09:25:14
  • +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

Répondre à crack1

12

hayet, le 6 jun 2006 à 10:09:09

A ce que je peu triée une liste chainée

Répondre à hayet

2

crack1, le 5 mai 2005 à 09:34:58
  • +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

Répondre à crack1

3

poppyn73, le 5 mai 2005 à 14:12:42

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

Répondre à poppyn73

4

crack1, le 5 mai 2005 à 14:19:47

Attend j'installe devc++, ça faisait un bout de temps que je programme pas en c

Répondre à crack1

5

crack1, le 5 mai 2005 à 14:26:01

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.

Répondre à crack1

6

crack1, le 5 mai 2005 à 14:28:40

Si tu es sur windows avec devc++, il te faudra ajouter:
system("pause") a la fin du main()

Répondre à crack1

7

poppyn73, le 5 mai 2005 à 15:51:38

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.

Répondre à poppyn73

8

crack1, le 5 mai 2005 à 15:57:58

Essai de le mettre en commentaire, il se peut qu'il y ai maintenant un autre include. ça devrait fonctionner

Répondre à crack1

9

lisandra, le 5 mai 2005 à 20:21:12

Coucou,

Merci à tous de m'aider, c'est vraiment sympa....
Gros bisous....

Répondre à lisandra

10

lisandra, le 5 mai 2005 à 20:28:54

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....
???

Répondre à lisandra

11

lisandra, le 5 mai 2005 à 20:58:00
  • +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

Répondre à lisandra

13

rachid, le 5 nov 2007 à 11:17:41

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

Répondre à rachid

14

raaachid, le 29 déc 2007 à 11:25:21

Heu ouais bien sur tu a dautres requettes dans ce genre a nous formuler?
Bye

Répondre à raaachid

15

lami20j, le 29 déc 2007 à 11:30:39

Salut,

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

Pour rachid

tu peux regarder dans la FAQ CCM Listes simplement chaînées
lami20j

Répondre à lami20j

16

adnene1987, le 28 jan 2008 à 12:46:23

Cherchez nous des cours bidagogique de liste chainée en C piles et files svp
adnene400@yahoo.fr

Répondre à adnene1987

17

lami20j, le 28 jan 2008 à 13:12:44
Répondre à lami20j

18

 mawti, le 25 mar 2008 à 18:24:29

Donnez-moi svp un site pour le language c(cours+exercices corrigées)

Répondre à mawti