laroui
Messages postés1Date d'inscriptionjeudi 11 avril 2013StatutMembreDernière intervention 4 mai 2013
-
4 mai 2013 à 22:26
DarkenNights
Messages postés137Date d'inscriptionjeudi 2 mai 2013StatutMembreDernière intervention17 décembre 2013
-
4 mai 2013 à 23:43
ce code n'a marche pas et je n'outrouve pas l'erreure ou exacte svt aidez moi
}
//------------------------------------------------------------------------------
Booleen EstVide (Ens e)
{
if (e==NULL) return vrai;
return faux;
}
//-----------------------------------------------------------------------------
int cardianl (Ens e)
{
int i=0;
while (e!=NULL)
{ i++;
e=e->suiv;
}
return i;
}
//--------------------------------------------------------------------------------
Ens inserer(int a, Ens e)
{
Ens m;
if (appartient (a,e)) return e;
m=(maillon*)malloc (sizeof (Maillon))
m->val=a;
m->suiv=e;
return m;
}
//----------------------------------------------------------------------------------
Ens supprimer (int a , Ens e)
{
Ens save;
if (!appartient (a,e)) return e;
if (e->val==a) {
save=e;
e=e->suiv;
free(save);
return (e)
}
e->suiv=supprier(a,e);
return e;
}
//-------------------------------------------------------------------------------------
typedef struct eltens
{
int n;
struct eltens *suiv;
}maillonEns, *Ens;
//-----------------------------------------------------------------------------------
typedef struct eltgraphe
{ int v;
struct eltgraphe *S1;
Ens s2;
} maillongraphe, *Graphe;
//--------------------------------------------------------------------------------
Graphe graphnouv (void)
{ return (Graphe)NULL;
}
Booleen exs(Graphe g, int x)
{
if vide(g)) return faux;
if (g->v==x) return vrai;
return exs(d->S1,x);
}
//------------------------------------------------------------------------------------
Booleen exa(Graphe g, int x, int y)
{
Graphe aux=g;
if (!exs(g,x)|| !exs(g,y)) return faux;
while (aux->v !=x)
aux=aux->Ss;
return (appartient (aux->S1, y);
}
//--------------------------------------------------------------------------------------
int de( Graphe g , int x)
{ Graphe aux =g;
if (!exs(g,x)) return 0;
while (aux->v !=x)
aux= aux ->S1;
return cardinal (aux->Ss);
}
//-------------------------------------------------------------------------------------
int di (Graphe g, int x)
{
Graphe aux=g;
int cpt=0;
while (aux ! NULL)
{if apparient(aux->S1,x) cpt++;
aux->S1;
}
return cpt;
}
Graphe adjs(Graphe g, int x)
{
Graphe m;
if (exs (g,x) return g;
m=(maillongraphe *)malloc(sizeof (maillonGraphe))
if( m==NULL)
{
printf ("plus de place memoie");
exit (0);
}
m->v=x;
if (vide(g))
{
m->S1=NULL;
m->S2=ensnouv();
return m;
}
if //-------
{
m->S1=g;
m->S2=ensnouv;
return m
}
g->S1=adjs(g->S1, x);
return g;
}
//-------------------------------------------------------------------------------------------------
Graphe adja (Graphe g, int x, int y)
{
Graphe aux=g;
if(!exs (g,x) || !exs (g,y)) return g;
while (aux->v!=x)
aux=aux->S1;
aux->S2=inserer(aux->S2,y);
return g;
}
//-----------------------------------------------------------------------------------------------------
Graphe sups(Graphe g , int x)
{
if (!exs(g,x)) return g;
if (de(g,x)!=0 || di(g,x)!=0)
{
printf ("sommet relie à un arc");
return g;
}
if vide (g) return g;
if (g->v==x) return g->S1;
g->S1=sups(g->S1,x);
return g;
}
//-----------------------------------------------------------------------------------------------
Graphe supa(graphe g int x, int y)
{
Graphe aux=g;
if (!exa(g,x,y) return g;
while (!vide (aux))
{
if (aux->v==x)
{
aux->S2=supelement(aux->S2,y);
break;
aux=aux->S1;
}
return g
}
}