Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- vector <int> adj[10];
- bool visited[10];
- vector <int> res;
- void dfs(int s) {
- visited[s] = true;
- for(int i = 0;i < adj[s].size();++i) {
- if(visited[adj[s][i]] == false)
- dfs(adj[s][i]);
- }
- res.push_back(s);
- }
- void initialize() {
- for(int i = 0;i < 10;++i)
- visited[i] = false;
- }
- int main() {
- int nodes, edges, x, y, connectedComponents = 0;
- cin >> nodes; //Number of nodes
- cin >> edges; //Number of edges
- for(int i = 0;i < edges;++i) {
- cin >> x >> y;
- //Undirected Graph
- adj[x].push_back(y); //Edge from vertex x to vertex y
- // adj[y].push_back(x); //Edge from vertex y to vertex x
- }
- initialize(); //Initialize all nodes as not visited
- for(int i = 1;i <= nodes;++i) {
- if(visited[i] == false) {
- dfs(i);
- //connectedComponents++;
- }
- }
- // cout << "Number of connected components: " << connectedComponents << endl;
- // return 0;
- for(int i = res.size() - 1; i >= 0; i--) cout << res[i] << ' ';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement