Documente Academic
Documente Profesional
Documente Cultură
1
Grafuri neorientate
Se citesc de la tastatura doua valori naturale n și m d) Să se afișeze varfurile izolate ale grafului.
for(i=1;i<=n;i++)
reprezentând numărul de vârfuri respective numărul de muchii ale
{int nr=0;
unui graf neorientat, apoi m perechi de forma (x,y) (1<=x; y<=n) =lista
for(j=1;j<=n;j++)
muchiilor. if(a[i][j]!=0) nr++;
#include <iostream> if(nr==0) cout<<i<<" ";
using namespace std; cout<<endl;
int a[100][100]; e) Să se afișeze varfurile de grad maxim.
int main() for(i=1;i<=n;i++)
{ {for(j=1;j<=n;j++)
int n,m,x,y,i,j; if(a[i][j]!=0)d[i]++;
cin>>n>>m; if(d[i]>max) max=d[i];}
for(i=1;i<=m;i++) for(i=1;i<=n;i++)
{cin>>x>>y; if(d[i]==max) cout<<i<<" ";
a[x][y]=1; f) Să se afișeze varfurile terminale ale grafului.
a[y][x]=1;} ok=0;
a) Să se afișeze matricea de adiacență a grafului. for(i=1;i<=n;i++)
for(i=1;i<=n;i++) {nr=0;
{for(j=1;j<=n;j++) for(j=1; j<=n; j++)
cout<<a[i][j]<<" "; if(a[i][j]==1) nr++;
cout<<endl;} if(nr==1) {cout<<i<<" ";
b) Să se afișeze, pentru fiecare vârf al grafului, lista vecinilor săi. ok=1;}}
for(i=1;i<=n;i++) if(ok==0)cout<<"NU EXISTA";
{cout<<i<<"_"; g) Să se afișeze varfurile de grad minim.
for(j=1;j<=n;j++) int min=m;
if(a[i][j]==1) for(i=1;i<=n;i++)
cout<<j<<" "; {for(j=1;j<=n;j++)
cout<<endl;} if(a[i][j]!=0) d[i]++;
c) Să se afișeze gradul fiecărui vârf. if(d[i]<min) min=d[i];}
for(i=1;i<=n;i++) cout<<"min="<<min<<endl;
{int nr=0; for(i=1;i<=n;i++)
for(j=1;j<=n;j++) if(d[i]==min) cout<<i<<" ";
if(a[i][j]!=0) nr++; return 0;
cout<<"d("<<i<<")"<<m<<endl; }
2
Rezolvare model teza
6.Se citesc de la tastatură doi întregi m și n reprezentând numărul de muchii 7. Se citesc de la tastatură două valori naturale n(numărul de vârfuri) și
respectiv vârfuri ale unui graf orientat, apoi m perechi de numere naturale de m(numărul de muchii), precum și coordonatele(x,y) celor m muchii ale unui
forma (x,y), reprezentând extremitățile celor m arce din graf. graf neorientat cu n noduri și costul lor(c). Realizați un program care să se
Scrieți un program care construiește și afișează matricea de adiacență determine și afișeze pe ecran costul mediu precum și coordonatele muchiilor
atașată grafului precum și gradul exterior d+(x) și mulțimea ω-(x), pentru un de cost minim.
nod x citit de la tastatură.
#include<iostream> #include<iostream>
using namespace std; using namespace std;
int a[100][100]; int main()
int main() {int n,m,x,y,c,i,j;
{int n,m,i,j,x,y,nr=0; con>>n>>m;
cin>>n>>m; float s=0;
for(i=1;i<=n;i++) for(i=1;i<=n;i++)
{cin>>x>>y; cin>>x>>y>>c;
a[x][y]=1;} a[x][y]=c;
for(i=1;i<=n;i++) a[y][x]=c;
{for(j=1;j<=m;j++) s=s+c;
cout<<a[i][j]<<" "; if(min>c) min=c;
cout<<endl;} {for(j=i+1;j<=n;j++)
cin>>x; if(a[i][j]=c)
cout<<"d+("<<x<<")="; cout<<i<<" "<<j<<endl;}
for(j=1;j<=n;j++) return 0;}
if(a[i][j]!=1) nr++;
cout<<nr<<endl;
cout<<"omega-("<<x<<")=";
for(i=1;i<=n;i++)
if(a[i][j]==1) cout<<i<<","<<x<<" ";
return 0;}
3
4