Orar semigroup #2

Orar semigroup #2

02/06 - Tentativă de program Vishispaces

Se dă un graf şi se cere, probabil, afişarea muchiilor de avansare, respectiv de întoarcere în urma parcurgerii grafului în adâncime. http://clasa11info.wikispaces.com/Ce_facem_azi

#include<iostream>
#include<fstream>
using namespace std;
int n,a[20][20],m,viz[30],k=1,b[100];
void df(int x)
{int i;
for(i=1;i<=n;i++)
if(viz[i]==0 && a[x][i]==1)
{viz[i]=1;
b[k]=i;
b[k+1]=x;
k=k+2;
//cout<<x<<" "<<i<<endl;
df(i);}
}
void citire()
{int i,j,x,y;
ifstream f("date");
f>>n>>m;
for(i=1;i<=m;i++)
{ f>>x>>y;
a[x][y]=a[y][x]=1;
}}
int este(int x, int y)
{int i;
for(i=1;i<k;i=i+2)
if(b[i]==x && b[i+1]==y || b[i+1]==x && b[i]==y)
return 0;
return 1;}
int main()
{int i,j;
citire();
viz[1]=1;
df(1);
for(i=1;i<k;i=i+2)
cout<<b[i]<<" "<<b[i+1]<<endl;
cout<<"muchii de intoarcere"<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==1)
if(este(i,j))
cout<<i<<" "<<j<<endl;
}
Fişier
5 4
1 2
1 3
2 4
1 5

luni, 6 februarie 2012 by DlMuresan
Categories: , | Leave a comment

Leave a Reply