fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int>graph[1001];
  4. int visit[1001];
  5. int n, e;
  6. void DFS(int start)
  7. {
  8. //Initial Step
  9. visit[start] = 1;
  10. cout<<start<<" ";
  11. stack<int>stk;
  12. stk.push(start);
  13.  
  14. //Repeating Step
  15. //int x = stk.top();
  16. while(!stk.empty())
  17. {
  18. int x = stk.top();
  19. for(int j = 0; j<graph[x].size(); j++)
  20. {
  21. int node = graph[x][j];
  22. if(visit[node] == 0)
  23. {
  24. visit[node] = 1;
  25. cout<<node<<" ";
  26. stk.push(node);
  27. x = stk.top();
  28. j = 0;
  29. }
  30. }
  31. stk.pop();
  32. //x = stk.top();
  33. }
  34. }
  35.  
  36. int main()
  37. {
  38. cin>>n>>e;
  39. int u, v;
  40. for(int i = 1; i <= e; i++)
  41. {
  42. cin>>u>>v;
  43. graph[u].push_back(v);
  44. graph[v].push_back(u);
  45. }
  46. DFS(1);
  47. }
  48.  
Success #stdin #stdout 0.01s 5288KB
stdin
10 13                                                                            1 2                                                                              1 4                                                                              2 3                                                                              4 3                                                                              3 9                                                                              3 10                                                                             2 5                                                                              2 7                                                                              2 8                                                                              5 7                                                                              5 8                                                                              7 8                                                                              5 6 
stdout
1 2 3 4 9 10 5 7 8 6