#include #include typedef struct element { int contenu; struct element *suivant; } element; int main() { printf("\nJe vous invite a faire tous les tests possibles, en cas de bug, emailez moi \n"); printf("\n------------------ S. Larabi --------------------------------------------- \n"); element *debut, *nad; element *ad; debut= (element *) malloc (sizeof(element)); ad=debut; int i, n, val; printf("Donnez le nombre d'elements de la liste = "); scanf("%d",&n); if(n!=0) { for(i=0; icontenu=val; nad=(element *) malloc (sizeof(element)); ad->suivant=nad; ad=nad; } printf("Donnez la valeur du dernier element = "); scanf("%d",&val); ad->contenu=val; ad->suivant=NULL; } // Affichage des éléments de la liste printf("\n Affichage des elements de la liste \n"); printf(" ================================== \n"); ad=debut; while(ad->suivant!=NULL) { printf("Element = %d \n", ad->contenu); ad=ad->suivant; } // affichage du dernier element printf("Element = %d \n", ad->contenu); // Suppression des éléments négatifs element *pad; // pad signifie la précédente adresse ad=debut; pad=ad; while(ad!=NULL) { if(ad->contenu<0) { //suppression de l'élément d'adresse ad if(ad==debut) // cas ou le premier element est negatif, on met a jour debut et pad {debut=ad->suivant;pad=debut;} else // si l element a supprimer est different du premier element, on met a jour pad {pad->suivant=ad->suivant;} // Dans les deux cas on libere ad free(ad); } else { // Si l'élément est positif on met à jour pad pad=ad; } // on passe à l'élément suivant ad=ad->suivant; } printf("\n Affichage des elements de la liste apres la suppression des elements negatifs \n"); printf(" ============================================================================== \n"); ad=debut; if(ad!=NULL) { while(ad->suivant!=NULL) { printf("Element = %d \n", ad->contenu); ad=ad->suivant; } // affichage du dernier element printf("Element = %d \n", ad->contenu); } else { printf("Liste vide \n"); printf("========== \n"); printf("+++++++++++++++++ Merci pour votre assiduite +++++++++++++++++++ \n"); printf("Source ecrit par S. Larabi \n"); } return 0; }