Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void initV(int v[10])
- {
- for(int i=0; i<10; i++)
- v[i]=0;
- }
- void citire_grafn(int &n, int a[10][10])
- {
- int c,b;
- cout<<"Introduceti numarul de noduri: ";
- cin>>n;
- cout<<"Introduceti nr de noduri si incheiati cu perechea 0 0";
- do{
- cin>>c>>b;
- a[c][b]=a[b][c]=1;
- }while(c && b);
- }
- void citire_graf_fisiern(int &n, int a[10][10])
- {
- int c,b;
- cin>>n;
- for(int i=1; i<=n; i++)
- for(b=1; b<=n; b++)
- cin>>a[c][b];
- }
- void BF(int a[10][10], int n, int nod)
- {
- int in=0, sf=0;
- sol[in]=nod;
- sf++;
- viz[nod]=1;
- while(in<=sf)
- {
- for(int i=1; i<=n; i++)
- if(a[sol[in]][i]==1 && viz[i]==0)
- {
- sol[sf]=i;
- viz[i]=1;
- sf++;
- }
- in++;
- }
- cout<<"\nBF("<<nod<<"): ";
- for(int i=0; i<n; i++)
- cout<<sol[i]<<" ";
- }
- void DF(int a[10][10], int n, int nod)
- {
- cout<<nod<<" ";
- viz[nod]=1;
- for(int i=1; i<=n; i++)
- if(a[nod][i]==1 && viz[i]==0)
- DF(a, n, i, viz);
- }
- int main()
- {
- int sol[10], viz[10];
- initV(sol);
- initV(viz);
- int sf=-1;
- int i, j, n, max=0, a[10][10], d[10];
- for(i=1; i<=n; i++)
- {
- d[i]=0;
- for(j=1; j<=n; j++)
- a[i][j]=0;
- }
- citire_grafn(n,a);
- BF(a, n, 2);
- for(int i=1; i<=n; i++)
- {
- initV(viz);
- cout<<"\nDF("<<i<<"): ";
- DF(a, n, i, viz)
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement