Pagini recente » Cod sursa (job #810195) | Cod sursa (job #1746741) | Cod sursa (job #1519425) | Cod sursa (job #311415) | Cod sursa (job #158163)
Cod sursa(job #158163)
#include<fstream.h>
struct nod{int info;
nod *urm;
};
int n,m,viz[50001];
nod *lista[50001],*St;
void adaug(nod *&p,int x)
{
nod *q=new nod();
q->info=x;
q->urm=p;
p=q;
}
void citire()
{ifstream f("sortaret.in");
f>>n>>m;
int x1,x2;
while(f>>x1>>x2)
adaug(lista[x1],x2);
f.close();
}
void df(int varf)
{
viz[varf]=1;
for(nod *q=lista[varf];q;q=q->urm)
if(!viz[q->info])
df(q->info);
adaug(St,varf);
}
ofstream g("sortaret.out");
void afisare()
{
if(St)
{g<<St->info<<" ";
St=St->urm;
afisare();
delete St;
}
}
void sterge(int i)
{
if(lista[i])
{lista[i]=lista[i]->urm;
sterge(i);
delete lista[i];
}
else
if(i<=n)
sterge(i+1);
}
int main()
{citire();
for(int i=1;i<=n;i++)
if(viz[i]==0)
df(i);
afisare();
sterge(1);
g.close();
return 0;
}