SHARE
TWEET

DF SI BF GRAFURI

edutedu Jan 28th, 2020 82 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void initV(int v[10])
  6. {
  7.     for(int i=0; i<10; i++)
  8.         v[i]=0;
  9. }
  10.  
  11. void citire_grafn(int &n, int a[10][10])
  12. {
  13.     int c,b;
  14.     cout<<"Introduceti numarul de noduri: ";
  15.     cin>>n;
  16.     cout<<"Introduceti nr de noduri si incheiati cu perechea 0 0";
  17.     do{
  18.        cin>>c>>b;
  19.        a[c][b]=a[b][c]=1;
  20.     }while(c && b);
  21. }
  22. void citire_graf_fisiern(int &n, int a[10][10])
  23. {
  24.     int c,b;
  25.     cin>>n;
  26.     for(int i=1; i<=n; i++)
  27.         for(b=1; b<=n; b++)
  28.             cin>>a[c][b];
  29. }
  30.  
  31. void BF(int a[10][10], int n, int nod)
  32. {
  33.     int in=0, sf=0;
  34.     sol[in]=nod;
  35.     sf++;
  36.     viz[nod]=1;
  37.     while(in<=sf)
  38.     {
  39.         for(int i=1; i<=n; i++)
  40.         if(a[sol[in]][i]==1 && viz[i]==0)
  41.         {
  42.             sol[sf]=i;
  43.             viz[i]=1;
  44.             sf++;
  45.         }
  46.         in++;
  47.     }
  48.     cout<<"\nBF("<<nod<<"): ";
  49.     for(int i=0; i<n; i++)
  50.         cout<<sol[i]<<" ";
  51. }
  52.  
  53. void DF(int a[10][10], int n, int nod)
  54. {
  55.     cout<<nod<<" ";
  56.     viz[nod]=1;
  57.     for(int i=1; i<=n; i++)
  58.         if(a[nod][i]==1 && viz[i]==0)
  59.            DF(a, n, i, viz);
  60. }
  61.  
  62. int main()
  63. {
  64.     int sol[10], viz[10];
  65.     initV(sol);
  66.     initV(viz);
  67.     int sf=-1;
  68.     int i, j, n, max=0, a[10][10], d[10];
  69.     for(i=1; i<=n; i++)
  70.     {
  71.         d[i]=0;
  72.         for(j=1; j<=n; j++)
  73.             a[i][j]=0;
  74.     }
  75.     citire_grafn(n,a);
  76.     BF(a, n, 2);
  77.     for(int i=1; i<=n; i++)
  78.     {
  79.         initV(viz);
  80.         cout<<"\nDF("<<i<<"): ";
  81.         DF(a, n, i, viz)
  82.     }
  83.     return 0;
  84. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top