This program hangs when I enter the number of vertices only..It does nothing..I am not able to figure out what's wrong with this.Please help

``````#include<iostream>
#include <list>

using namespace std;

// This class represents a directed graph using adjacency list representation
class Graph
{
int V;    // No. of vertices
list<int> *adj;    // Pointer to an array containing adjacency lists
public:
Graph(int V);  // Constructor
void addEdge(int v, int w); // function to add an edge to graph
void BFS(int s);  // prints BFS traversal from a given source s
};

Graph::Graph(int V)
{
this->V = V;
adj = new list<int>[V];
}

void Graph::addEdge(int v, int w)
{
adj[v].push_back(w); // Add w to v’s list.
}

void Graph::BFS(int s)
{
// Mark all the vertices as not visited
bool *visited = new bool[V];
for(int i = 0; i < V; i++)
visited[i] = false;

// Create a queue for BFS
list<int> queue;

// Mark the current node as visited and enqueue it
visited[s] = true;
queue.push_back(s);

// 'i' will be used to get all adjacent vertices of a vertex
list<int>::iterator i;

while(!queue.empty())
{
// Dequeue a vertex from queue and print it
s = queue.front();
cout << s << " ";
queue.pop_front();

// Get all adjacent vertices of the dequeued vertex s
// If a adjacent has not been visited, then mark it visited
// and enqueue it
for(i = adj[s].begin(); i != adj[s].end(); ++i)
{
if(!visited[*i])
{
visited[*i] = true;
queue.push_back(*i);
}
}
}
}

// Driver program to test methods of graph class
int main()
{
// Create a graph given in the above diagram
int n,n1,n2,s;
printf("Enter Number of vertices\n");
cin>>n;
Graph g(n);
for(int i=0;i<n;i++)
{
}
cin>>s;
cout << "Following is Breadth First Traversal (starting from vertex given by you) \n";
g.BFS(s);

return 0;
}
``````

In your code here in main():

``````for(int i=0;i<n;i++)
{
}
``````

Neither n1 nor n2 are initialized - they just contain garbage data from the stack.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.