I am getting Segmentation fault in the below code. Can anyone help.
#include<iostream>
#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
void dfs(vector<bool> &visited, vector<int> adjlist[], int node, int place, vector<vector<int>> &ls) {
visited[node] = true;
for (int i = 0; i < adjlist[node].size(); i++) {
if(!visited[adjlist[node][i]]) {
ls[place].push_back(i);
dfs(visited, adjlist, i, place, ls);
}
}
}
vector<vector<int>> depthFirstSearch(int V, int E, vector<vector<int>> &edges)
{
// Write your code here
vector<int> adjlist[V]; // Adjacency List
for (int i = 0; i < E; i++) {
int a = edges[i][0];
int b = edges[i][1];
adjlist[a].push_back(b);
adjlist[b].push_back(a);
}
vector<vector<int> > ls; // Output Matrix
vector<bool> visited(V, false); // Visited Matrix
int place = 0; // Row number of output list
for (int i = 0; i < V; i++) {
if (!visited[i]) {
ls[0][0] = place++;
ls[place].push_back(i);
//visited[i] = 1;
dfs(visited, adjlist, i, place, ls);
}
}
return ls;
}
int main() {
vector<vector<int>> edges = {{0,2}, {0,1}, {1,2}, {3,4}};
vector<vector<int>> output;
output = depthFirstSearch(5, 4, edges);
for (int i = 0; i < output.size(); i++) {
for (int j = 0; j < output[i].size(); j++) {
cout<< output[i][j] << " ";
}
cout << "n";
}
return 0;
}
I am writing a program to print the DFS traversal line wise. But, getting segmentation fault. I think there is no array out of bounds, but I am still getting Segmentation fault error. Any help will be greatly appreciated.
New contributor
NoobMaster is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.