fork download
#include <iostream>
#include <stack>
#include <queue>
#include <vector>
using namespace std;
vector<int> graph[100];

void DFS(int start)
{
    bool visited[100]={};
    stack<int> s;
    s.push(start);
    int tops;
    while(!s.empty())
    {
        tops = s.top();
        //cout<<top<<" ";
        s.pop();
        if(!visited[tops])
        {
            visited[tops] = true;
            cout<<tops<<" ";
            for(int i=0; i<graph[tops].size(); i++)
            {
                s.push(graph[tops][i]);
            }
        }
        
    }
}

int main()
{
    int v, e;
    cin>>v>>e;
    for(int i=0; i<e; i++)
    {
        int v1, v2;
        cin>>v1>>v2;
        graph[v1].push_back(v2);
        graph[v2].push_back(v1);
    }
    DFS(1);
}

Success #stdin #stdout 0s 3464KB
stdin
4 4
1 3
1 2
2 4
3 4
stdout
1 2 4 3