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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| #include<stdio.h>
#include<stdlib.h>
typedef struct element *pelement;
typedef struct element {
int val;
pelement suiv;
} element;
typedef struct liste {
pelement tete;
element queue;
int taille;
} liste;
void init_liste(liste *l);
void init_liste(liste *l){
l->tete=NULL;
l->taille=0;
}
void init(liste *l){
l->tete=NULL;
l->taille=0;
}
void creer_liste(liste*l,int taille){
pelement nouv,cour;
nouv=(pelement)malloc(sizeof(element));
scanf("%d",&nouv->val);
nouv->suiv=NULL;
l->tete=nouv;
for(int i=2;i<=taille;i++){
cour=nouv;
nouv=(pelement)malloc(sizeof(element));
scanf("%d",&nouv->val);
nouv->suiv=NULL;
cour->suiv=nouv;
l->taille=l->taille+1;
}
}
void pair(liste *l, liste *p){
pelement cour, pres;
pelement nouv,courr;
int pos=0;
cour=l->tete;
while (cour!=NULL ){
if (cour->val%2 ==0) {
nouv=(pelement)malloc(sizeof(element));
nouv->val = cour->val;
nouv->suiv=NULL;
p->tete=nouv;
break;
}
cour=cour->suiv;
}
while (cour!=NULL){
pos=pos+1;
if (cour->val%2 ==0) {
//supprimer_elem(l,pos);
courr=nouv;
nouv=(pelement)malloc(sizeof(element));
nouv->val = cour->val;
nouv->suiv=NULL;
courr->suiv=nouv;
}
cour=cour->suiv;
}
}
void afficher(liste *l){
pelement cour;
cour=l->tete;
while (cour!=NULL)
{
printf("%d\n",cour->val);
cour=cour->suiv;
}
}
int main(){
liste *L;
liste *pairs;
liste *impairs;
L=(liste*)malloc(sizeof(liste));
int size, pos;
init_liste(L);
printf("---(1)- Phase de Creation : \n");
printf("Donnez la taille de la liste a cree: \n");
scanf("%d",&size);
printf("Donner les elements de la liste a cree :\n");
creer_liste(L,size);
printf("---(2)- Phase de tri : \n");
system("pause");
init_liste(pairs);
pair(L,pairs);
printf("Voici liste L' qui comporte que les entier pairs : \n");
afficher(pairs);
printf("Voici liste L qui comporte que les entier impairs : \n");
afficher(L);
system("pause");
return 0;
} |