Sunteți pe pagina 1din 2

#include<iostream.

h>
#include<fstream.h>
int i,j,a[10][10],n,s=0,p,d,s1=0,h[10],x[10];
ifstream f;

void afisare(int a[10][10],int n)


{for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
}

int main()
{f.open("date");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
f.close();
afisare(a,n);

cout<<"nodul ";
cin>>p;

for(i=1;i<=n;i++)
{if(a[i][p]==1)
s+=1;}
cout<<"gradul intern pentru nodul "<<p<<" este "<<s<<endl;

for(j=1;j<=n;j++)
{if(a[p][j]==1) s1+=1;}
cout<<"gradul extern pentru nodul "<<p<<" este "<<s1<<endl;

cout<<endl;
int k;
for(i=1;i<=n;i++)
{ k=0;
for(j=1;j<=n;j++)
if(a[i][j]==1) k++;
h[i]=k;}
for(i=1;i<=n;i++)
cout<<"gradul extern pentru nodul "<<i<<" este "<<h[i]<<endl;
cout<<endl;
int v;
for(i=1;i<=n;i++)
{ v=0;
for(j=1;j<=n;j++)
if(a[j][i]==1) v++;
x[i]=v;}
for(i=1;i<=n;i++)
cout<<"gradul intern pentru nodul "<<i<<" este "<<x[i]<<endl;
cout<<endl;
int m=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if( a[i][j]==1)
{m++;
cout<<"arcul "<<i<<" si "<<j<<endl;
}
cout<<"sunt "<<m<<" arce"<<endl;
int nod;
cout<<"vecinii pentru nodul: ";
cin>>nod;
for(i=1;i<=n;i++)
if(a[nod][i]==1 || a[i][nod]==1)
cout<<"vecinii nodului sunt "<<i<<endl;
int t=0;
for(i=1;i<=n;i++)
if(h[i]==0 && x[i]==0)
{t++;
cout<<"nodul izolat este "<<i<<endl;}
if(t==0)
cout<<"nu avem noduri izolate"<<endl;
else
cout<<"sunt "<<t<<" noduri izolate"<<endl;

int r=0;
for(i=1;i<=n;i++)
if(h[i]+x[i]==1)
{r++;
cout<<"nodul "<<i<<" este terminal "<<endl;}
if(r==0)
cout<<"nu avem noduri terminal"<<endl;
else
cout<<"sunt "<<r<<" noduri terminale"<<endl;

int z=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==0 || a[i][j]==1)
if(a[i][j]==1 && a[j][i]==1)
z++;
if(z==2*n)
cout<<endl<<"nu este matricea unu graf orientat";
else
cout<<endl<<"este matricea unu graf orientat";
return 0;
}

S-ar putea să vă placă și