Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin ("graf.in");
- ofstream fout ("graf.out");
- int a[20][20], n, i, j, v[20],gasit=0,coada[20],ic,sc;
- void Citire();
- void DF(int nod);
- void Init();
- void Componentaconexa();
- void DFciclu(int nod);
- void BF(int nod);
- int main()
- {
- Citire();
- DF(3);
- fout << endl;
- Init();
- Componentaconexa();
- fout << endl;
- Init();
- BF(6);
- /*DFciclu(3);
- fout << endl;
- if(gasit)
- fout <<"\nAre cicluri";
- else
- fout <<"\nNu are cicluri";*/
- return 0;
- }
- void Citire()
- {
- int x, y;
- fin >> n;
- while (fin >> x >> y)
- a[x][y] = a[y][x] = 1;
- }
- void DF(int nod)
- {
- int k;
- fout << nod << " ";
- v[nod]=1;
- for (k=1 ; k<=n; k++)
- if (a[nod][k]==1 && !v[k])
- DF(k);
- }
- void Init()
- {
- for (i=1 ; i<=20 ; i++)
- v[i]=0;
- }
- void Componentaconexa()
- {
- int nrcc=0;
- for (i=1 ; i<=n ;i++)
- if (!v[i])
- {
- nrcc++;
- fout <<"\nComponenta conexa: "<< nrcc << ": ";
- DF(i);
- }
- }
- void DFciclu(int nod)
- {
- int k;
- v[nod]=1;
- for (k=1 ; k<=n ;k++)
- if (a[nod][k]==1)
- {
- a[k][nod]=0;
- if(!v[k])
- DFciclu(k);
- else
- gasit=1;
- }
- }
- void BF(int nod)
- {
- ic=sc=1;
- coada[ic]=nod;
- v[nod]=1;
- while (ic<=sc)
- {
- for (i=1 ; i<=n ; i++)
- {
- if (a[coada[ic]][i]==1 && !v[i])
- {
- sc++;
- coada[sc]=i;
- v[i]=1;
- }
- }
- fout << coada[ic] << " ";
- ic++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement