Data Structures: Breadth-First Search
This commit is contained in:
parent
f4b4db0d8b
commit
be75ed68ed
34
Data Structures/bfs.js
Normal file
34
Data Structures/bfs.js
Normal file
@ -0,0 +1,34 @@
|
||||
// https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/breadth-first-search
|
||||
|
||||
function bfs(graph, root) {
|
||||
const nodesLen = {};
|
||||
const n_nodes = graph[root].length;
|
||||
for (let dst = 0; dst < n_nodes; dst++) {
|
||||
nodesLen[dst] = Infinity;
|
||||
}
|
||||
nodesLen[root] = 0;
|
||||
for (let q = [root], d = 1; ; d++) {
|
||||
const newQ = [];
|
||||
for (let src of q) {
|
||||
for (let dst = 0; dst < n_nodes; dst++) {
|
||||
if (nodesLen[dst] > d && graph[src][dst] > 0) {
|
||||
nodesLen[dst] = d;
|
||||
newQ.push(dst);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (newQ.length <= 0) {
|
||||
break;
|
||||
}
|
||||
q = newQ;
|
||||
}
|
||||
return nodesLen;
|
||||
}
|
||||
|
||||
var exBFSGraph = [
|
||||
[0, 1, 0, 0],
|
||||
[1, 0, 1, 0],
|
||||
[0, 1, 0, 1],
|
||||
[0, 0, 1, 0],
|
||||
];
|
||||
console.log(bfs(exBFSGraph, 3));
|
Loading…
Reference in New Issue
Block a user