Se citeste de la tastatura un graf neorientat precizat prin vectorul muchiilor.
a) Construiti si afisati matricea de adiacenta a grafului precedata de numarul de varfuri.
b) De la tastatura se mai citeste un varf k. Calculati si afisati gradul varfului k.
Toate datele de iesire se vor scrie in fisierul graf.out.Pentru graful dat astfel:
m=6
1 3
1 5
1 2
2 3
3 4
4 5
k=1 Se vor afisa urmatoarele:
6
0 1 1 0 1 0
1 0 1 0 0 0
1 1 0 1 0 0
0 0 1 0 1 0
1 0 0 1 0 0
0 0 0 0 0 0
3
Rezolvare:
# include <iostream.h>
# include <conio.h>
# include <fstream.h>
ofsream fout("graf.out")
int n,a[50][50];
void adiacenta()
{int i,j;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];}
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
int grad(int i)
{int j,k=0;
for(j=1;j<=n;j++)
if(a[i][j]==1) k++;
return k ;}
int main()
{int k;
adiacenta();
cin>>k;
fout<<grad(i);
f.close("graf.out");
getch();}
a) Construiti si afisati matricea de adiacenta a grafului precedata de numarul de varfuri.
b) De la tastatura se mai citeste un varf k. Calculati si afisati gradul varfului k.
Toate datele de iesire se vor scrie in fisierul graf.out.Pentru graful dat astfel:
m=6
1 3
1 5
1 2
2 3
3 4
4 5
k=1 Se vor afisa urmatoarele:
6
0 1 1 0 1 0
1 0 1 0 0 0
1 1 0 1 0 0
0 0 1 0 1 0
1 0 0 1 0 0
0 0 0 0 0 0
3
Rezolvare:
# include <iostream.h>
# include <conio.h>
# include <fstream.h>
ofsream fout("graf.out")
int n,a[50][50];
void adiacenta()
{int i,j;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];}
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
int grad(int i)
{int j,k=0;
for(j=1;j<=n;j++)
if(a[i][j]==1) k++;
return k ;}
int main()
{int k;
adiacenta();
cin>>k;
fout<<grad(i);
f.close("graf.out");
getch();}
nonafatg.cpp | |
File Size: | 0 kb |
File Type: | cpp |