File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments