I am not able take user input for graph. Please look into my code and help me.
I searched it on google. But on every place they giving input in code not at run time #include #include
using namespace std;
class Graph{
int V;
vector *adj{};
void DFSUtil(int v, bool visited[]);
public:
explicit Graph(int V);
void addEdge(int v, int w);
void DFS(int v);
};
Graph::Graph(int V){
this->V = V;
adj = new vector[V];
}
void Graph::addEdge(int v, int w){
adj[v].push_back(w);
adj[w].push_back(v);
}
void Graph::DFSUtil(int v, bool visited[]){
visited[v] = true;
cout << v << " ";
vector::iterator i;
for (i = adj[v].begin(); i != adj[v].end(); ++i)
if (!visited[*i]) DFSUtil(*i, visited);
}
void Graph::DFS(int v){
bool *visited = new bool[V];
for (int i = 0; i < V; i++) visited[i] = false;
DFSUtil(v, visited);
}
int main(){
Graph g(4);
int u=0; cin>>u;
int a=0, b=0;
for(int i=0; i<u; i++){
cin>>a>>b;
g.addEdge(a, b);
}
// g.addEdge(0, 1);
// g.addEdge(0, 2);
// g.addEdge(1, 2);
// g.addEdge(2, 0);
// g.addEdge(2, 3);
// g.addEdge(3, 3);
cout << "Following is Depth First Traversal"
" (starting from vertex 2) \n";
g.DFS(2);
return 0;
How you are going to take input depends upon the question. But the basic idea used in representing a graph in code is same.
Refer to this:- Graph Representation
Also, try to solve the problem given at the end. (The Edge Existence one)