Cod sursa(job #1377516)

Utilizator supremusChihalau Andrei supremus Data 5 martie 2015 22:19:34
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <iostream>
#include <queue>
#include <fstream>
#include <cstdlib>
using namespace std;

class Graf
{int v,**M;
public:
    Graf(){v=0;M=NULL;}
    void citire(char *nume_fis)
    {
        ifstream fin(nume_fis);
        fin>>v;
        M=new int*[v];
        for(int i=0;i<v;i++)
        {
            M[i]=new int [v];
            for(int j=0;j<v;j++)
                M[i][j]=0;

        }
        int x,y;
        while(fin>>x>>y)
        {
        M[x][y]=1;
        M[y][x]=1;
        }
        fin.close();

    }
    void bf(int nod)
    {
        queue <int>q; bool*viz=new bool[v];
        for(int i=0;i<v;i++)
            viz[i]=0;
        q.push(nod);
        viz[nod]=1;
        while(!q.empty())
        {
            nod=q.front();q.pop();
            cout<<nod<<" ";
            for(int i=0;i<v;i++)
                if(M[nod][i]&& !viz[i])
                {
                    q.push(i);
                    viz[i]=1;
                }

        }

    }
};
int main()
{
    Graf g;
    int nod;
    cin>>nod;
    g.citire("DA.txt");
    g.bf(nod);
    system("pause");
    return 0;
}