@@ -104,6 +104,13 @@ class BinarySearchTree {
104
104
// there is a left sub-tree
105
105
return root . leftChild ;
106
106
}
107
+ // the root contain 2 childs
108
+ const minRightNode = this . findMinNode ( root . rightChild ) ;
109
+ // eslint-disable-next-line no-param-reassign
110
+ root . value = minRightNode . value ;
111
+ // eslint-disable-next-line no-param-reassign
112
+ root . rightChild = this . delete ( root . rightChild , minRightNode . data ) ;
113
+ return root ;
107
114
}
108
115
return root ;
109
116
}
@@ -150,41 +157,36 @@ class BinarySearchTree {
150
157
}
151
158
}
152
159
153
- // const bst = new BinarySearchTree(6);
154
- // console.log(bst.root);
155
- // bst.add(4);
156
- // bst.add(9);
157
- // bst.add(2);
158
- // bst.add(5);
159
- // bst.add(8);
160
- // bst.add(12);
160
+ const bst = new BinarySearchTree ( 6 ) ;
161
+ console . log ( bst . root ) ;
162
+ bst . add ( 4 ) ;
163
+ bst . add ( 9 ) ;
164
+ bst . add ( 2 ) ;
165
+ bst . add ( 5 ) ;
166
+ bst . add ( 8 ) ;
167
+ bst . add ( 12 ) ;
161
168
162
- // console.log(bst.root);
169
+ console . log ( bst . root ) ;
163
170
164
- // const preorder = bst.traversePreorder();
165
- // console.log('Preorder Traversal - ', preorder);
171
+ const preorder = bst . traversePreorder ( ) ;
172
+ console . log ( 'Preorder Traversal - ' , preorder ) ;
166
173
167
- // const inorder = bst.traverseInorder();
168
- // console.log('Inorder Traversal - ', inorder);
174
+ const inorder = bst . traverseInorder ( ) ;
175
+ console . log ( 'Inorder Traversal - ' , inorder ) ;
169
176
170
- // const postorder = bst.traversePostorder();
171
- // console.log('Postorder Traversal - ', postorder);
177
+ const postorder = bst . traversePostorder ( ) ;
178
+ console . log ( 'Postorder Traversal - ' , postorder ) ;
172
179
173
- // const search = 18;
174
- // console.log(`Search for ${search}`, bst.searchFor(search));
180
+ const search = 18 ;
181
+ console . log ( `Search for ${ search } ` , bst . searchFor ( search ) ) ;
175
182
176
- // const minNode = bst.findMinimum();
177
- // console.log('Minimum value =>', minNode);
183
+ const minNode = bst . findMinimum ( ) ;
184
+ console . log ( 'Minimum value =>' , minNode ) ;
178
185
179
- // bst.remove(8);
180
- // console.log(bst.traversePreorder());
181
- // console.log(bst.root);
186
+ bst . remove ( 4 ) ;
187
+ console . log ( bst . traversePreorder ( ) ) ;
182
188
183
- // bst.remove(5);
184
- // console.log(bst.traversePreorder());
185
-
186
- // bst.remove(4);
187
- // console.log(bst.traversePreorder());
189
+ console . log ( bst . root ) ;
188
190
189
191
// bst.remove(2);
190
192
// console.log(bst.traversePreorder());
0 commit comments