Could not resize the adjecent list in BFS

adjecent list could not be resized in line no. 28.

#include <iostream>
#include <list>
#include <vector>
using namespace std;

#ifndef UNTITLED_GRAPH_H
#define UNTITLED_GRAPH_H

class Graph{
protected:
	int vertecies; 
	vector<list<int>> adj;
	
public:
	Graph();
	Graph(int vertecies);
	void addEdge(int u, int v);
};

#endif //UNTITLED_GRAPH_H

Graph::Graph() {

}

Graph::Graph(int vertecies) {
	this->vertecies = vertecies;
	adj.resize(vertecies);	
}

void Graph::addEdge(int u, int v) {
	//adj.resize(vertecies);
	adj[u].push_back(v);
    adj[v].push_back(u);
}

#ifndef UNTITLED_BFS_H
#define UNTITLED_BFS_H

class BFS: public Graph {
public:
	void treverse(int source);
};

#endif

void BFS::treverse(int source) {
    vector<bool> visited;
	visited.resize(vertecies, false);
	visited[source] = true;
	
	list<int> queue;
	queue.push_back(source);

	while(!queue.empty()) {
		source = queue.front();
		cout << source << endl;
		queue.pop_front();

		for(auto adjecent: adj[source]) {
			if(!visited[adjecent]) {
				visited[adjecent] = true;
				queue.push_back(adjecent);
			}
		}
	}
}



int main() {
	BFS::Graph(4);
	BFS g;
	g.addEdge(0, 1);
	g.addEdge(0, 2);
	g.addEdge(1, 2);
	g.addEdge(2, 0);
	g.addEdge(2, 3);
	g.addEdge(3, 3);
	g.treverse(2);

	return 0;
}
1 Like