Data Structures: Depth-First Search
This commit is contained in:
parent
be75ed68ed
commit
1d1c0c9964
25
Data Structures/dfs.js
Normal file
25
Data Structures/dfs.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/depth-first-search
|
||||||
|
|
||||||
|
function dfs(graph, root) {
|
||||||
|
const n_nodes = graph[0].length;
|
||||||
|
const reachable = new Set([root]);
|
||||||
|
const stack = [root];
|
||||||
|
while (stack.length) {
|
||||||
|
const node = stack.pop();
|
||||||
|
for (let i = 0; i < n_nodes; i++) {
|
||||||
|
if (graph[node][i] > 0 && !reachable.has(i)) {
|
||||||
|
reachable.add(i);
|
||||||
|
stack.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Array.from(reachable);
|
||||||
|
}
|
||||||
|
|
||||||
|
var exDFSGraph = [
|
||||||
|
[0, 1, 0, 0],
|
||||||
|
[1, 0, 1, 0],
|
||||||
|
[0, 1, 0, 1],
|
||||||
|
[0, 0, 1, 0],
|
||||||
|
];
|
||||||
|
console.log(dfs(exDFSGraph, 3));
|
Loading…
Reference in New Issue
Block a user