Cod sursa(job #2242677)

Utilizator MarianConstantinMarian Constantin MarianConstantin Data 19 septembrie 2018 11:31:13
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <stack>

using namespace std;

int matrix[110][110], visited[110];

void DFS(int start, int n)
{
    ofstream fout("DFS.out");
    stack<int> s;
    int node, ok;
    s.push(start);
    visited[start]=1;
    fout << start << " ";
    while(!s.empty())
    {
        node=s.top();
        ok=0;
        for (int i=1; i<=n; i++)
            if (!visited[i] && matrix[node][i])
            {
                ok=1;
                s.push(i);
                visited[i]=1;
                fout << i << " ";
                break;
            }
        if (!ok)
            s.pop();
    }
}

int main()
{
    int n, m, nr, x, y;
    ifstream fin("DFS.in");
    fin >> n >> m >> nr;
    for (int i=1; i<=m; i++)
    {
        fin >> x >> y;
        matrix[x][y]=matrix[y][x]=1;
    }
    DFS(nr, n);
    return 0;
}