Documente Academic
Documente Profesional
Documente Cultură
#include<iostream>
///• citim matricea de adiacenta si cele m noduri
///• verificam daca exista un lant format din cele m noduri
///• parcurgem graful folosind metoda pe latime
///• afisam rezultatul
int a[50][50];
int main()
{
int n,m,i,j,b[50],ok,prim,ultim,start,x,y,v[100],c[100];
cout<<"n= ";
cin>>n;
cout<<"m= ";
cin>>m;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
a[j][i]=a[i][j];
}
for(i=1; i<=m; i++)
{
cout<<"b["<<i<<"]=";
cin>>b[i];
}
ok=1;
for(i=1; i<m; i++)
{
if(a[b[i]][b[i+1]]==0)
ok=0;
if(ok)
cout<<"Da";
else cout<<"Nu";
}
prim=1;
ultim=1;
cout<<"nodul de pornire";
cin>>start;
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
a[j][i]=a[i][j];
}
v[start]=1;
c[1]=start;
while(prim<=ultim)
{
for(j=1; j<=n; j++)
if(a[c[prim]][j]==1 && v[j]==0)
{
ultim++;
c[ultim]=j;
v[j]=1;
}
prim++;
}
for(i=1; i<=ultim; i++)
cout<<c[i]<<" ";
}