Skip to content

Commit 55c8337

Browse files
authored
Create AsyncTree.js
1 parent 41e0104 commit 55c8337

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

03-DataStructures/AsyncTree.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
class TreeNode {
2+
constructor(value) {
3+
this.value = value;
4+
this.left = null;
5+
this.right = null;
6+
}
7+
}
8+
9+
class BinarySearchTree {
10+
constructor() {
11+
this.root = null;
12+
}
13+
14+
async insert(value) {
15+
const newNode = new TreeNode(value);
16+
17+
if (!this.root) {
18+
this.root = newNode;
19+
} else {
20+
await this._insertNode(this.root, newNode);
21+
}
22+
}
23+
24+
async _insertNode(node, newNode) {
25+
if (newNode.value < node.value) {
26+
if (!node.left) {
27+
node.left = newNode;
28+
} else {
29+
await this._insertNode(node.left, newNode);
30+
}
31+
} else {
32+
if (!node.right) {
33+
node.right = newNode;
34+
} else {
35+
await this._insertNode(node.right, newNode);
36+
}
37+
}
38+
}
39+
40+
// Other tree operations (search, remove, etc.) can be added here
41+
}
42+
43+
// Example usage:
44+
(async () => {
45+
const bst = new BinarySearchTree();
46+
47+
const response = await fetch('https://api.example.com/data');
48+
const data = await response.json();
49+
50+
for (const value of data.values) {
51+
await bst.insert(value);
52+
}
53+
})();
54+

0 commit comments

Comments
 (0)