dude2099

GrafNeorientat.h

Jan 29th, 2020
807
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. #ifndef GRAFNEORIENTAT_H_INCLUDED
  7. #define GRAFNEORIENTAT_H_INCLUDED
  8.  
  9. int a[10][10],n,viz[25];
  10. ifstream f("date.in");
  11. ifstream f1("date1.in");
  12.  
  13. void citire_graf_fisier(int a[10][10], int &n)
  14. {
  15.     f>>n;
  16.     for(int i=1; i<=n; i++)
  17.         for(int j=1; j<=n; j++)
  18.             f>>a[i][j];
  19. }
  20.  
  21. void citire_graf_fisier_muchii(int a[10][10], int &n)
  22. {
  23.     int i,j;
  24.     f1>>n;
  25.     while(f1>>i>>j)
  26.         a[i][j]=a[j][i]=1;
  27. }
  28.  
  29. void init(int a[10][10])
  30. {
  31.     for(int i=0; i<10; i++)
  32.         for(int j=0; j<10; j++)
  33.             a[i][j]=0;
  34. }
  35.  
  36. void AfisareMatriceAdiacenta(int a[10][10], int n)
  37. {
  38.     for(int i=1; i<=n; i++)
  39.     {
  40.         for(int j=1; j<=n; j++)
  41.             cout<<a[i][j]<<" ";
  42.         cout<<endl;
  43.     }
  44.     cout<<endl;
  45. }
  46.  
  47. int grad(int a[10][10], int n, int nod)
  48. {
  49.     int rez=0;
  50.     for(int i=1; i<=n; i++)
  51.         rez+=a[nod][i];
  52.     return rez;
  53. }
  54.  
  55. int NodIzolat(int a[10][10], int n, int nod)
  56. {
  57.     if(grad(a,n,nod)==0)
  58.         return 1;
  59.     else
  60.         return 0;
  61. }
  62.  
  63. int NodTerminal(int a[10][10], int n, int nod)
  64. {
  65.     if(grad(a,n,nod)==1)
  66.         return 1;
  67.     else
  68.         return 0;
  69. }
  70.  
  71. int GradMaxim(int a[10][10], int n, int nod)
  72. {
  73.     int maxim=0;
  74.     for(int i=1; i<=n; i++)
  75.         if(maxim<grad(a,n,i))
  76.             maxim=grad(a,n,i);
  77.     return maxim;
  78. }
  79.  
  80. int NrMuchii(int a[10][10], int n)
  81. {
  82.     int rez=0;
  83.     for(int i=0; i<=n; i++)
  84.         rez+=grad(a,n,i);
  85.     rez/=2;
  86.     return rez;
  87. }
  88.  
  89. void BF(int a[10][10], int n, int nod)
  90. {
  91.     int prim=1, ultim=1,coada[25];
  92.     coada[prim]=nod;
  93.     viz[nod]=1;
  94.     while(prim<=ultim)
  95.     {
  96.         for(int i=1; i<=n; i++)
  97.             if(a[coada[prim]][i] && !viz[i])
  98.             {
  99.                 ultim++;
  100.                 coada[ultim]=i;
  101.                 viz[i]=1;
  102.             }
  103.             cout<<coada[prim];
  104.             prim++;
  105.     }
  106. }
  107.  
  108. void DF(int a[10][10], int n, int nod)
  109. {
  110.     cout<<nod;
  111.     viz[nod]=1;
  112.     for(int i=1; i<=n; i++)
  113.         if(a[nod][i] && !viz[i])
  114.             DF(a,n,i);
  115. }
  116.  
  117.  
  118. #endif // GRAFNEORIENTAT_H_INCLUDED
Advertisement
Add Comment
Please, Sign In to add comment