un excercice improtant sur les liste chainéé de 1 anéé LMD

اذهب الى الأسفل

un excercice improtant sur les liste chainéé de 1 anéé LMD

مُساهمة  Admin في الإثنين مايو 18, 2009 2:14 am

un excercice improtant sur les liste chainée de 1 annéé LMD
VOIC LA SOURSE DE SE EXCERCICE


#include"conio.h"
#include"stdio.h"
#include"stdlib.h"

struct list
{
float reel,imaginaire;
struct list * sv ;
};
struct list*tete;
struct list*p;

// LA FONCTION AJOUTE EN TETE
void ajoutete ()
{

p=tete;

p=(struct list*)malloc(sizeof (struct list));
p->sv=tete;
tete=p;
printf("\nDonner la partie reel\n");
scanf("%f",&p->reel) ;
printf("\nDonner la partie imaginaire\n");
scanf("%f",&p->imaginaire) ;

p=p->sv ;
}
//la fonction ajoute a la fin
ajoutfin()
{p=tete; struct list*q;
if(tete!=NULL)
{while(p->sv!=NULL) {p=p->sv;}
q=(struct list*)malloc(sizeof(struct list));
p->sv=q;
q->sv=NULL;
printf("\nDonner la partie reel\n");
scanf("%f",&p->reel) ;
printf("\nDonner la partie imaginaire\n");
scanf("%f",&p->imaginaire) ;
return 1;
}
else ajoutete ();
return 0; }
//LA FONCTION AFFICHAGE
int affiche()
{p=tete;
while(p!=NULL)
{printf("\n%.0f+%.0fi",p->reel,p->imaginaire);p=p->sv;
}
return 0;}
// la fontcion recherche
cher(float r,float im)
{p=tete;
while(p!=NULL)
{if((p->reel!=r)||(p->imaginaire!=im))
{p=p->sv;}
else return 1;

}
return 0;
}
//suprime un element
void supprime()
{p=tete;
p=p->sv;
free(tete);
tete=p;

}
//supprime element en fin
supprime2()
{p=tete; struct list*q;
while(p->sv!=NULL){q=p;
p=p->sv;
}
q->sv=NULL;
free(p);
}



main()
{ int br;float reel,imaginaire; p=tete;
printf("\t\t\tCE PROGRAME DE REDJEM ALYES\n\n");
br:printf("\ntappez '1' pour ajouter un element au debut:\n");
printf("\ntappez '2' pour ajouter un element en fin:\n");
printf("\ntappez '3' pour afficher des elements dans la liste:\n");
printf("\ntappez '4' pour chercher un element dans la liste:\n");
printf("\ntappez '5' pour supprime un element au debut de la liste:\n");
printf("\ntappez '6' pour supprime un element en fin de la liste:\n");
getch();clrscr();
switch(getch())
{case '1':{ajoutete();goto br;}
case '2':{ajoutfin();goto br;}
case '3':{affiche();goto br;}
case '4':{
scanf("%f %f",&reel,&imaginaire);
if(cher( reel, imaginaire)==1)
{
printf("ce nombre complexe est existe:\n");
}
else
printf("ce nombre complexe ne existe pas:\n");
goto br;
case '5':{supprime();goto br; }
case '6':{supprime2();goto br;}

}
}

getch();
return 0;
}

Admin
Admin

المساهمات : 10
تاريخ التسجيل : 26/09/2008

معاينة صفحة البيانات الشخصي للعضو http://info-algerie.ba7r.org

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: un excercice improtant sur les liste chainéé de 1 anéé LMD

مُساهمة  Jundi في السبت أكتوبر 24, 2009 5:28 am

Trés bien

Vraimment Un tres bon programme qui traite une liste des nombres reéls
Ajout et affichage des elements, suppression et recherche dans une liste chainée
mais tu peux ameliorer ce programme par exemple trouver une idée pour enlever les goto

Merci mon frére
continuer

Jundi

المساهمات : 3
تاريخ التسجيل : 24/10/2009

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى