1
+ 'use strict' ;
2
+ class Node {
3
+ constructor ( data ) {
4
+ this . data = data ;
5
+ this . leftNode = this . rightNode = null ;
6
+ }
7
+ }
8
+
9
+ function insertionOfk ( root , k ) {
10
+ if ( root == null ) return new Node ( k ) ;
11
+ if ( root . data > k )
12
+ root . leftNode = insertionOfk ( root . leftNode , k ) ;
13
+ else if ( root . data < k )
14
+ root . rightNode = insertionOfk ( root . rightNode , k ) ;
15
+ return root ;
16
+ }
17
+
18
+ function inOrder ( root , inOrderArr ) {
19
+ if ( root == null ) return ;
20
+ inOrder ( root . leftNode , inOrderArr ) ;
21
+ inOrderArr . push ( root . data ) ;
22
+ inOrder ( root . rightNode , inOrderArr ) ;
23
+ }
24
+
25
+ function convertToMinHeap ( root , inOrderArr ) {
26
+ if ( root == null ) return ;
27
+ root . data = inOrderArr . shift ( ) ;
28
+ convertToMinHeap ( root . leftNode , inOrderArr ) ;
29
+ convertToMinHeap ( root . rightNode , inOrderArr ) ;
30
+ }
31
+
32
+ function preOrderDisplay ( root , preOrderArr ) {
33
+ if ( root == null ) return ;
34
+ preOrderArr . push ( root . data ) ;
35
+ preOrderDisplay ( root . leftNode , preOrderArr ) ;
36
+ preOrderDisplay ( root . rightNode , preOrderArr ) ;
37
+ }
38
+
39
+ let tree = null ;
40
+ tree = insertionOfk ( tree , 4 ) ;
41
+ tree = insertionOfk ( tree , 2 ) ;
42
+ tree = insertionOfk ( tree , 3 ) ;
43
+ tree = insertionOfk ( tree , 1 ) ;
44
+ tree = insertionOfk ( tree , 6 ) ;
45
+ tree = insertionOfk ( tree , 5 ) ;
46
+ tree = insertionOfk ( tree , 7 ) ;
47
+
48
+ // BST
49
+ // 4
50
+ // / \
51
+ // 2 6
52
+ // / \ / \
53
+ // 1 3 5 7
54
+ let preOrderArr = [ ] ;
55
+ preOrderDisplay ( tree , preOrderArr ) ;
56
+ console . log ( 'BST Preorder Display - ' , preOrderArr . join ( ', ' ) ) ;
57
+
58
+ let inOrderArr = [ ] ;
59
+ inOrder ( tree , inOrderArr ) ;
60
+ BSTToMinHeap ( tree , inOrderArr ) ;
61
+
62
+ preOrderArr = [ ] ;
63
+ preOrderDisplay ( tree , preOrderArr ) ;
64
+ console . log ( 'Min Heap Preorder Display -' , preOrderArr . join ( ', ' ) ) ;
0 commit comments