DFS-2

#include<bits/stdc++.h>
using namespace std;
long long visited[100];
vector <int> grp[200];
int n;
 map<int,int>vis;
int dfs(int s)
{

stack<int>st;
    st.push(s);
    //for(int i=0; i<n; i++)
        //cout<<i<<" b "<<vis[i]<<endl;
    while(!st.empty())
    {
        s=st.top();
        //cout<<s<<endl;
        st.pop();
        if(vis[s]==0)
        {
            cout<<s<<" ";
            vis[s]=1;
        }
        int l=grp[s].size();
        //int l=9;
        for(int i=0; i<l; i++)
        {
            //cout<<"grp[s][i]="<<grp[s][i]<<endl;
            if(vis[grp[s][i]]==0)
                st.push(grp[s][i]);
        }
    }
}
int main()
{
    int m,i,j,a,b;
    cin>>n>>m;
    for(i=1; i<=m; i++)
    {
        cin>>a>>b;
        grp[a].push_back(b);
    }
    for(i=0;i<n;i++)
        vis[i]=0;
for(i=1;i<=n;i++)
    dfs(i);
    return 0;
}
/*
5 4
1 0
2 1
3 4
4 0
*/

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

BSF

Job Sequencing Problem

Dijkstra's shortest path algorithm-2