Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef NEORIEN_H_INCLUDED
- #define NEORIEN_H_INCLUDED
- #include <iostream>
- #include <fstream>
- using namespace std;
- int a[10][10], n;
- int sol[10], viz[10];
- int sf=-1;
- ifstream f("date.in");
- ifstream f1("date1.in");
- void citireGraf(int a[10][10], int &n)
- {
- f>>n;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- f>>a[i][j];
- }
- void citireMuchii(int a[10][10], int &n)
- {
- int i, j;
- f1>>n;
- while(f1>>i>>j)
- a[i][j]=a[j][i]=1;
- }
- void afisareMA(int a[10][10], int n)
- {
- for(int i=1; i<=n; i++)
- {
- for(int j=1; j<=n; j++)
- cout<<a[i][j]<<" ";
- cout<<endl;
- }
- cout<<endl;
- }
- void init(int a[10][10])
- {
- for(int i=0; i<10; i++)
- for(int j=0; j<10; j++)
- a[i][j]=0;
- }
- int NrMuchii(int a[10][10], int n)
- {
- int rez=0;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- if(a[i][j])
- rez++;
- rez/=2;
- return rez;
- }
- int grad(int a[10][10], int n, int nod)
- {
- int rez=0;
- for(int i=1; i<=n; i++)
- rez+=a[nod][i];
- return rez;
- }
- int NodIzolat(int a[10][10], int n, int nod)
- {
- if(grad(a, n, nod)==0)
- return 1;
- else
- return 0;
- }
- int NodTerminal(int a[10][10], int n, int nod)
- {
- if(grad(a, n, nod)==1)
- return 1;
- else
- return 0;
- }
- int GradMaxim(int a[10][10], int n, int nod)
- {
- int maxim=0;
- for(int i=1; i<=n; i++)
- if(grad(a, n, i)>maxim)
- maxim=grad(a, n, i);
- return maxim;
- }
- void initV(int v[10])
- {
- for(int i=0; i<10; i++)
- v[i]=0;
- }
- void BF(int a[10][10], int n, int nod)
- {
- int sol[10], viz[10];
- initV(sol);
- initV(viz);
- int in=0, sf=0;
- sol[sf]=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<<"BF("<<nod<<"): ";
- for(int i=0; i<n; i++)
- cout<<sol[i]<<" ";
- }
- void DF(int a[10][10], int n, int nod, int viz[10])
- {
- 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);
- }
- void df_r(int a[10][10], int n, int nod, int viz[10])
- {
- viz[nod]=1;
- for(int i=1;i<=n;i++)
- if(A[nod][i]==1 && viz[i]==0)
- {
- T[i]=nod;
- df_r(a,n,i,viz,T);
- }
- }
- void DF_lant(int a[10][10], int n, int nod_st, int nod_sf, int viz[10], int )
- {
- cout<<nod_st<<" ";
- viz[nod_st]=1;
- for(int i=1;i<=n;i++)
- if(A[nod][k]==1 && s[k]==0)
- {
- T[k]=nod;
- df_r(k)
- }
- }
- void refac(int nod, int T[10])
- {
- if(nod!=0)
- {
- refac(T[nod]);
- cout<<nod<<" ";
- }
- }
- #endif // NEORIEN_H_INCLUDED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement