fork(1) download
  1. #include <iostream>
  2. #include <stack>
  3. #include <queue>
  4. #include <vector>
  5. using namespace std;
  6. vector<int> graph[100];
  7.  
  8. void DFS(int start)
  9. {
  10. bool visited[100]={};
  11. stack<int> s;
  12. s.push(start);
  13. int tops;
  14. while(!s.empty())
  15. {
  16. tops = s.top();
  17. //cout<<top<<" ";
  18. s.pop();
  19. if(!visited[tops])
  20. {
  21. visited[tops] = true;
  22. cout<<tops<<" ";
  23. for(int i=0; i<graph[tops].size(); i++)
  24. {
  25. s.push(graph[tops][i]);
  26. }
  27. }
  28.  
  29. }
  30. }
  31.  
  32. int main()
  33. {
  34. int v, e;
  35. cin>>v>>e;
  36. for(int i=0; i<e; i++)
  37. {
  38. int v1, v2;
  39. cin>>v1>>v2;
  40. graph[v1].push_back(v2);
  41. graph[v2].push_back(v1);
  42. }
  43. DFS(1);
  44. }
  45.  
  46.  
Success #stdin #stdout 0s 3468KB
stdin
4 4
1 2
1 3
2 4
3 4
stdout
1 3 4 2