Langage c
Fermé
tonami
Messages postés
7
Date d'inscription
dimanche 12 avril 2009
Statut
Membre
Dernière intervention
12 avril 2009
-
12 avril 2009 à 05:48
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 13 avril 2009 à 13:15
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 13 avril 2009 à 13:15
A voir également:
- Langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
3 réponses
lucieb31
Messages postés
345
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
28 juillet 2012
62
13 avril 2009 à 12:43
13 avril 2009 à 12:43
quelles sont le erreurs lors de la compilation ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 avril 2009 à 13:15
13 avril 2009 à 13:15
Salut,
Regarde ici http://www.commentcamarche.net/faq/sujet 7444 liste simplement chainee
Il te reste à faire la recherche d'un élément. Pour ça il faut que tu crée une fonction comparer par exemple.
Pour la concaténation il suffit de faire pointer le pointeur suivant de dernier élément de la 1ère liste sur le 1er élément de la deuxième liste.
Regarde ici http://www.commentcamarche.net/faq/sujet 7444 liste simplement chainee
Il te reste à faire la recherche d'un élément. Pour ça il faut que tu crée une fonction comparer par exemple.
Pour la concaténation il suffit de faire pointer le pointeur suivant de dernier élément de la 1ère liste sur le 1er élément de la deuxième liste.
12 avril 2009 à 13:07
#include #include #include typedef struct ElementListe{ char *donnee; struct ElementListe *suivant; } Element; typedef struct ListeRepere{ Element *debut; int taille; } list_att; /* initialisation */ void initialisation (list_att *tas); /* EMPILER*/ int empiler (list_att *head, char *donnee); /* DEPILER*/ int depiler (list_att *head); #define pile_donnee(head) head->debut->donnee void affiche (list_att *head); int main () { list_att *head; char *nom; if ((head = (list_att *) malloc (sizeof (list_att))) == NULL) return -1; if ((nom = (char *) malloc (50 * sizeof (char))) == NULL) return -1; initialisation (head); printf ("Entrez un entier : "); scanf ("%s", nom); empiler (head, nom); printf ("(%d éléments): \n",head->taille); printf("\n********** Haut de la list_att **********\n"); affiche(head); printf("__________ Bas de la list_att __________\n\n"); goto ana; nta:; printf ("Entrez un entier : "); scanf ("%s", nom); empiler (head, nom); printf ("(%d éléments): \n",head->taille); printf("\n********** Haut de la list_att **********\n"); affiche(head); printf("__________ Bas de la list_att __________\n\n"); printf ("Entrez un entier : "); scanf ("%s", nom); empiler (head, nom); printf ("(%d éléments): \n",head->taille); printf("\n********** Haut de la list_att **********\n"); affiche(head); printf("__________ Bas de la list_att __________\n\n"); printf ("Entrez un entier : "); scanf ("%s", nom); empiler (head, nom); printf ("(%d éléments): \n",head->taille); printf("\n********** Haut de la list_att **********\n"); affiche(head); printf("__________ Bas de la list_att __________\n\n"); goto howa; ana:; printf ("\nLe premier entré (FirstInFirstOut) [ %s ] \nsera supprimé aprés l'afichage\n", pile_donnee(head)); depiler (head); goto nta; howa:; /* suppression de dernier element entre */ printf ("(%d éléments): \n",head->taille); printf("\n********** Haut de la list_att **********\n"); affiche(head); printf("__________ Bas de la list_att __________\n\n"); } /***********************\ * Les fonctions * \***********************/ void initialisation (list_att * head){ head->debut = NULL; head->taille = 0; } int empiler (list_att * head, char *donnee){ Element *nouveau_element; if ((nouveau_element = (Element *) malloc (sizeof (Element))) == NULL) return -1; if ((nouveau_element->donnee = (char *) malloc (50 * sizeof (char))) == NULL) return -1; strcpy (nouveau_element->donnee, donnee); nouveau_element->suivant = head->debut; head->debut = nouveau_element; head->taille++; return 0; } int depiler (list_att * head){ Element *supp_element; if (head->taille == 0) return -1; supp_element = head->debut; head->debut = head->debut->suivant; head->taille--; free (supp_element->donnee); free (supp_element); return 0; } void affiche (list_att * head){ Element *courant; int i; courant = head->debut; for(i=0;itaille;++i){ printf("\t\t%s\n", courant->donnee); courant = courant->suivant; } }
mais je le n'ai pa compris pouvais vous me le simplifier svp
merci pour votre aide ;
12 avril 2009 à 13:28
merci
13 avril 2009 à 02:24
erci pour votre aide voila le cole:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct ElementListe{ char *donnee; struct ElementListe *suivant; } Element;
typedef struct ListeRepere{ Element *debut; int taille; }
list_att; /* initialisation */ void initialisation (list_att *tas);
/* EMPILER*/ int empiler (list_att *head, char *donnee);
/* DEPILER*/ int depiler (list_att *head);
#define pile_donnee(head) head->debut->donnee
void affiche (list_att *head); int main () { list_att *head; char *nom;
if ((head = (list_att *) malloc (sizeof (list_att))) == NULL) return -1;
if ((nom = (char *) malloc (50 * sizeof (char))) == NULL) return -1;
initialisation (head); printf ("Entrez un entier : ");
scanf ("%s", nom); empiler (head, nom); printf ("(%d éléments): \n",head->taille);
printf("\n********** Haut de la list_att **********\n"); affiche(head);
printf("__________ Bas de la list_att __________\n\n"); goto ana; nta:
; printf ("Entrez un entier : "); scanf ("%s", nom); empiler (head, nom);
printf ("(%d éléments): \n",head->taille);
printf("\n********** Haut de la list_att **********\n"); affiche(head);
printf("__________ Bas de la list_att __________\n\n");
printf ("Entrez un entier : ");
scanf ("%s", nom); empiler (head, nom);
printf ("(%d éléments): \n",head->taille);
printf("\n********** Haut de la list_att **********\n");
affiche(head);
printf("__________ Bas de la list_att __________\n\n"); printf ("Entrez un entier : ");
scanf ("%s", nom); empiler (head, nom); printf ("(%d éléments): \n",head->taille);
printf("\n********** Haut de la list_att **********\n");
affiche(head);
printf("__________ Bas de la list_att __________\n\n"); goto howa; ana:;
printf ("\nLe premier entré (FirstInFirstOut) [ %s ] \nsera supprimé aprés l'afichage\n", pile_donnee(head));
depiler (head); goto nta; howa:; /* suppression de dernier element entre */
printf ("(%d éléments): \n",head->taille);
printf("\n********** Haut de la list_att **********\n");
affiche(head);
printf("__________ Bas de la list_att __________\n\n"); } /***********************\ * Les fonctions * \***********************/
void initialisation (list_att * head){ head->debut = NULL; head->taille = 0; }
int empiler (list_att * head, char *donnee){ Element *nouveau_element;
if ((nouveau_element = (Element *) malloc (sizeof (Element))) == NULL) return -1;
if ((nouveau_element->donnee = (char *) malloc (50 * sizeof (char))) == NULL) return -1;
strcpy (nouveau_element->donnee, donnee);
nouveau_element->suivant = head->debut; head->debut = nouveau_element; head->taille++; return 0; }
int depiler (list_att * head){ Element *supp_element;
if (head->taille == 0) return -1;
supp_element = head->debut; head->debut = head->debut->suivant; head->taille--;
free (supp_element->donnee);
free (supp_element); return 0; }
void affiche (list_att * head){ Element *courant;
int i;
courant = head->debut;
for(i=0;itaille;++i){
printf("\t\t%s\n", courant->donnee);
courant = courant->suivant; } }
merci