Depth First Search
void DFSUtil(int i) {
discovered[i] = true;
for (every neighbor j of node i) {
if (!discovered[j]) {
check_node(j);
}
}
}
void DFS() {
// No nodes discovered
for (int i = 0; i < n; i++) {
discovered[i] = false;
}
// Go through each node
for (int i = 0; i < n; i++) {
if (!discovered[i]) {
check_node(i); // start a new tree
}
}
}
Performance:
Last updated