Advertisement
fuadnafiz98

Untitled

May 13th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. vector <int> adj[10];
  6. bool visited[10];
  7.  
  8. vector <int> res;
  9. void dfs(int s) {
  10.     visited[s] = true;
  11.     for(int i = 0;i < adj[s].size();++i)    {
  12.      if(visited[adj[s][i]] == false)
  13.          dfs(adj[s][i]);
  14.     }
  15.     res.push_back(s);
  16. }
  17.  
  18. void initialize() {
  19.     for(int i = 0;i < 10;++i)
  20.      visited[i] = false;
  21. }
  22.  
  23. int main() {
  24.     int nodes, edges, x, y, connectedComponents = 0;
  25.     cin >> nodes;                       //Number of nodes
  26.     cin >> edges;                       //Number of edges
  27.     for(int i = 0;i < edges;++i) {
  28.      cin >> x >> y;
  29.  //Undirected Graph
  30.      adj[x].push_back(y);                   //Edge from vertex x to vertex y
  31. //     adj[y].push_back(x);                   //Edge from vertex y to vertex x
  32.     }
  33.  
  34.     initialize();                           //Initialize all nodes as not visited
  35.  
  36.     for(int i = 1;i <= nodes;++i) {
  37.      if(visited[i] == false)     {
  38.          dfs(i);
  39.          //connectedComponents++;
  40.      }
  41.     }
  42. //    cout << "Number of connected components: " << connectedComponents << endl;
  43. //    return 0;
  44.     for(int i = res.size() - 1; i >= 0; i--) cout << res[i] << ' ';
  45.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement