Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions ClassicalAlgos/BFS_algorithm/breadthFirstSearch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
BFS(node) {
// Create a Queue and add our initial node in it
let q = new Queue(this.nodes.length);
let explored = new Set();
q.enqueue(node);

// Mark the first node as explored explored.
add(node);

// We'll continue till our queue gets empty
while (!q.isEmpty()) {
let t = q.dequeue();

// Log every element that comes out of the Queue
console.log(t);

// 1. In the edges object, we search for nodes this node is directly connected to.
// 2. We filter out the nodes that have already been explored.
// 3. Then we mark each unexplored node as explored and add it to the queue.
this.edges[t]
.filter(n => !explored.has(n))
.forEach(n => {
explored.add(n);
q.enqueue(n);
});
}
}