Files
fastapi-openapi-to-postman/lib/dfs.js
Luis Tejeda 2fefe62dc1 Add dfs algorithm
Add dfs algorithm
2022-05-02 21:14:39 -05:00

27 lines
593 B
JavaScript

class DFS {
traverse(node, getAdjacent) {
let traverseOrder = [],
stack = [],
missing = [],
visited = new Set();
stack.push(node);
while (stack.length > 0) {
node = stack.pop();
if (!visited.has(node)) {
traverseOrder.push(node);
visited.add(node);
let { graphAdj, missingNodes } = getAdjacent(node);
missing.push(...missingNodes);
for (let j = 0; j < graphAdj.length; j++) {
stack.push(graphAdj[j]);
}
}
}
return { traverseOrder, missing };
}
}
module.exports = {
DFS
};