Liste chainées (getion des employés) langageC
Fermé
xlag
Messages postés
2
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
21 mai 2011
-
Modifié par xlag le 20/05/2011 à 22:27
xlag Messages postés 2 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 21 mai 2011 - 21 mai 2011 à 21:01
xlag Messages postés 2 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 21 mai 2011 - 21 mai 2011 à 21:01
A voir également:
- Liste chainées (getion des employés) langageC
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Liste de diffusion whatsapp - Guide
- Triez la liste comme sur cette illustration (attention, on ne voit que le début …). quel est le mot formé par les 6 dernières lettres de la colonne code ? - Forum Excel
2 réponses
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
21 mai 2011 à 18:50
21 mai 2011 à 18:50
Bonjour,
Sur le site il y a une explication des listes chaînées : https://www.commentcamarche.net/contents/114-langage-c-les-listes-chainees
Pour l'exercice la structure pourrait ressembler à ceci :
Le principe est de sauvegarder seulement l'adresse de la première structure allouée qui possédera l'adresse de la suivante (dans *next pour l'exemple) ainsi on peut retrouver les données en partant de la première :
Pour atteindre les données on utilisera la première adresse en sautant sur la suivante :
struct emp *ptr=debut;
while(ptr->next!=NULL){
//faire un job sur le ptr actuel
ptr=ptr->next;
}
Sur le site il y a une explication des listes chaînées : https://www.commentcamarche.net/contents/114-langage-c-les-listes-chainees
Pour l'exercice la structure pourrait ressembler à ceci :
struct emp{ int code; char nom[256]; double salaire; struct emp *next; }; struct emp *debut;
Le principe est de sauvegarder seulement l'adresse de la première structure allouée qui possédera l'adresse de la suivante (dans *next pour l'exemple) ainsi on peut retrouver les données en partant de la première :
debut=malloc(sizeof(struct emp));//pointe sur un nouveau bloc debut->code=54; strcpy(debut->nom,"plop"); debut->salaire=350; debut->next=NULL;debut contient l'adresse de départ pour le moment la suivante est vide, et lors d'une nouvelle entrée à la suite :
struct emp *ptr; debut->next=malloc(sizeof(struct emp)); //next du debut pointe vers le nouveau bloc ptr=debut->next; //ptr sur le nouveau bloc ptr->code=34; strcpy(ptr->nom,"hello"); ptr->salaire=120; ptr->next=NULL; //pointera sur la suivante ainsi de suiteetc
Pour atteindre les données on utilisera la première adresse en sautant sur la suivante :
struct emp *ptr=debut;
while(ptr->next!=NULL){
//faire un job sur le ptr actuel
ptr=ptr->next;
}
xlag
Messages postés
2
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
21 mai 2011
21 mai 2011 à 21:01
21 mai 2011 à 21:01
merci mon frere, c'est sympa de ta part :) j'ai fini le travail et ca marche bien :)