File tree Expand file tree Collapse file tree 1 file changed +22
-5
lines changed
Data Structures/Binary Tree Expand file tree Collapse file tree 1 file changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -176,7 +176,7 @@ class BinaryTree {
176
176
leftRotate ( info ) {
177
177
let node = this . find ( info ) ? this . find ( info ) . currentNode : null ;
178
178
let rightNode = node ? node . right : null ;
179
- if ( rightNode !== null ) {
179
+ if ( rightNode ) {
180
180
// Copy the info
181
181
let info = node . info ;
182
182
node . info = rightNode . info ;
@@ -191,7 +191,23 @@ class BinaryTree {
191
191
}
192
192
}
193
193
194
- rightRotate ( info ) { }
194
+ rightRotate ( info ) {
195
+ let node = this . find ( info ) ? this . find ( info ) . currentNode : null ;
196
+ let leftNode = node ? node . left : null ;
197
+ if ( leftNode !== null ) {
198
+ // Copy the info
199
+ let info = node . info ;
200
+ node . info = leftNode . info ;
201
+ leftNode . info = info ;
202
+
203
+ // right rotation
204
+ node . left = leftNode . left ;
205
+ leftNode . left = leftNode . right ;
206
+ leftNode . right = node . right ;
207
+ node . right = leftNode ;
208
+ return this . rightRotate ( leftNode . info ) ;
209
+ }
210
+ }
195
211
}
196
212
197
213
const bst1 = new BinaryTree ( ) ;
@@ -201,8 +217,9 @@ bst1.add(5);
201
217
bst1 . add ( 11 ) ;
202
218
bst1 . add ( - 2 ) ;
203
219
bst1 . add ( 8 ) ;
204
- bst1 . add ( 21 ) ;
220
+ bst1 . add ( 12 ) ;
221
+ bst1 . add ( 9 ) ;
205
222
console . log ( bst1 . root ) ;
206
- console . log ( bst1 . leftRotate ( 20 ) ) ;
223
+ // console.log(bst1.leftRotate(20));
224
+ console . log ( bst1 . rightRotate ( 20 ) ) ;
207
225
console . log ( bst1 . root ) ;
208
- console . log ( bst1 . find ( 21 ) ) ;
You can’t perform that action at this time.
0 commit comments