Depth-first Search
Loading editor...
#include <bits/stdc++.h>
using namespace std;
void dfsSearch(int u, const vector<vector<int>> &adjacency, vector<bool> &visited) {
visited[u] = true; // Mark the vertex as discovered
// Recur for every unvisited neighbour
for (int v : adjacency[u]) {
if (!visited[v]) {
dfsSearch(v, adjacency, visited);
}
}
}
void dfs(const vector<vector<int>> &adjacency, int start) {
int n = static_cast<int>(adjacency.size()); // Number of vertices (0‑based indexing)
vector<bool> visited(n, false);
dfsSearch(start, adjacency, visited);
}
Number of nodes.
Edges between nodes, one per line.