Skip to content

Commit b53f544

Browse files
committed
update: BSF for BST
1 parent d77dbb7 commit b53f544

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/_DataStructures_/Trees/BinarySearchTree/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const Node = require('./Node');
33

44
class BinarySearchTree {
55
constructor(value) {
6+
if (!value) throw new Error('Root node value required');
67
this.root = new Node(value);
78
}
89

src/_Problems_/bfs-bst/index.js

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const BST = require('../../_DataStructures_/Trees/BinarySearchTree');
2+
const Queue = require('../../_DataStructures_/Queue');
3+
4+
function traverseBFS(root) {
5+
let temp = root;
6+
const arr = [];
7+
const nodeQueue = new Queue();
8+
9+
if (root === null) {
10+
return arr;
11+
}
12+
13+
while (temp !== null) {
14+
arr.push(temp.value);
15+
if (temp.leftChild) nodeQueue.enqueue(temp.leftChild);
16+
if (temp.rightChild) nodeQueue.enqueue(temp.rightChild);
17+
temp = nodeQueue.dequeue();
18+
}
19+
return arr;
20+
}
21+
22+
const myBST = new BST(51);
23+
24+
[10, 34, 32, 12, 90, 54, 61, 2, 71, 9].forEach(e => myBST.add(e));
25+
26+
const preOrderElements = myBST.traversePreorder();
27+
const levelOrderElements = traverseBFS(myBST.root);
28+
29+
// eslint-disable-next-line no-console
30+
console.log(preOrderElements);
31+
// eslint-disable-next-line no-console
32+
console.log(levelOrderElements);

0 commit comments

Comments
 (0)