Sunteți pe pagina 1din 1

Aplicații - Conexitate și parcurgerea grafurilor

1. Care este numărul maxim de componente conexe pe care le poate avea un graf
neorientat cu 20 noduri şi 12 muchii?
a. 6 b. 12 c. 10 d. 15
2. Se consideră un graf neorientat cu 10 noduri şi 7 muchii. Care este numărul maxim
de componente conexe din care poate fi format graful?

3. Într-un grup de n persoane s-au stabilit anumite relații de prietenie.


a) afișați toate grupurile de prieteni
Programul sursă:

#include<iostream>
using namespace std;
int n,m,a[100][100],viz[100],nr,k;

void citire()
{ cout<<"nr noduri:";cin>>n;
cout<<"nr. muchii:";cin>>m;
for(int x=1;x<=m;x++)
{int i,j;
cin>>i>>j;
a[i][j]=1;
a[j][i]=1;
}
}

void DF(int x)
{int i;
viz[x]=nr;
for(i=1;i<=n;i++)
if(a[i][x]==1&&viz[i]==0) DF(i);
}

int cauta()
{ for(int i=1;i<=n;i++) if(viz[i]==0) return i;
return 0;
}

int main()
{
citire();
k=1;
nr=1;
while(k)
{ DF(k);
cout<<"grupul de prieteni "<<nr<<":";
for(int i=1;i<=n;i++) if(viz[i]==nr) cout<<i<<" ";
cout<<endl;
k=cauta();
nr++;
}
}

b) completați programul astfel încât să stabiliți dacă două persoane (citite de la


tastatură) aparțin aceluiași grup de prieteni

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