1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| #include <stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include <myconio.h>
typedef struct employe{ int code;
char nom[30];
float salaire;
struct employe*s;}*emp;
void creation_liste(emp*T,int code,char nom[30],float salaire){ emp tmp;
emp ep=(emp)malloc(sizeof(struct employe));
ep->code=code;
strncpy(ep->nom,nom,30); ep->nom[29]='\0';
ep->salaire=salaire;
ep->s=NULL;
if(*T==NULL) *T=ep;
else if( (*T)->code > ep->code){ ep->s=*T;
*T=ep;}
else{
tmp=*T;
while(tmp->s!=NULL && ((tmp->s)->code < ep->code))/*tant que on a pas atteindre la fin et le code de ajouter <au code entrer*/
tmp=tmp->s;
if(tmp->s==NULL){ tmp->s=ep;}
else{ep->s=tmp->s;
tmp->s=ep; }}}
void aficher_liste_employe(emp T){ emp tmp;
if(T==NULL) printf("la liste est vide");
else{tmp=T;
gotoxy(25,2);printf("la liste des employ%cs\n\n");
gotoxy(8,6);printf("CODE");
gotoxy(30,6);printf("NOM");
gotoxy(50,6);printf("SALAIRE");
printf("\n\n");
do{
printf(" %d %s %f ",tmp->code,tmp->nom,tmp->salaire);
printf("\n\n");
tmp=tmp->s;}
while(tmp!=NULL);}}
void supprimer_employer( int cde,emp*T){ emp ep,ep_R;
if(*T==NULL){printf("la liste est vide");}
else{
if((*T)->code==cde)
{ ep_R=*T;
*T=(*T)->s;// on remplace l'employé trouvé par le suivant//
free(ep_R);}
else{ ep_R=*T;
while(ep_R!=NULL && ep_R->code!=cde)
{ep=ep_R; // on repere l'element precedent à l'element à suprimer//
//pour k'on puisse faire le chainage//
ep_R=ep_R->s;}
if(ep_R!=NULL){ ep->s=ep_R->s;
free(ep_R);}
else{printf("l'employ%c que vous cherchez n'%cxiste pas"); }}}
int main(){ emp T=NULL;int n;
creation_liste(&T,100,"employé1",4500);
creation_liste(&T,105,"employé2",3500);
creation_liste(&T,200,"employé3",3000);
creation_liste(&T,110,"employé4",4000);
aficher_liste_employe(T);
printf("\n\n");
printf("si vous voulez suprimez un employ%c etrez son code:");
scanf("%d",&n);
supprimer_employer(n,&T);
system("CLS");
aficher_liste_employe(T);
system("pause");
return EXIT_SUCCESS;} |
Partager