11import BinarySearchTree from '../binary-search-tree/BinarySearchTree' ;
22
33export default class AvlTree extends BinarySearchTree {
4+ /**
5+ * @param {* } value
6+ */
47 insert ( value ) {
58 // Do the normal BST insert.
69 super . insert ( value ) ;
@@ -13,6 +16,9 @@ export default class AvlTree extends BinarySearchTree {
1316 }
1417 }
1518
19+ /**
20+ * @param {BinarySearchTreeNode } node
21+ */
1622 balance ( node ) {
1723 // If balance factor is not OK then try to balance the node.
1824 if ( node . balanceFactor > 1 ) {
@@ -36,6 +42,9 @@ export default class AvlTree extends BinarySearchTree {
3642 }
3743 }
3844
45+ /**
46+ * @param {BinarySearchTreeNode } rootNode
47+ */
3948 rotateLeftLeft ( rootNode ) {
4049 // Detach left node from root node.
4150 const leftNode = rootNode . left ;
@@ -59,6 +68,9 @@ export default class AvlTree extends BinarySearchTree {
5968 leftNode . setRight ( rootNode ) ;
6069 }
6170
71+ /**
72+ * @param {BinarySearchTreeNode } rootNode
73+ */
6274 rotateLeftRight ( rootNode ) {
6375 // Detach left node from rootNode since it is going to be replaced.
6476 const leftNode = rootNode . left ;
@@ -78,6 +90,9 @@ export default class AvlTree extends BinarySearchTree {
7890 this . rotateLeftLeft ( rootNode ) ;
7991 }
8092
93+ /**
94+ * @param {BinarySearchTreeNode } rootNode
95+ */
8196 rotateRightLeft ( rootNode ) {
8297 // Detach right node from rootNode since it is going to be replaced.
8398 const rightNode = rootNode . right ;
@@ -97,6 +112,9 @@ export default class AvlTree extends BinarySearchTree {
97112 this . rotateRightRight ( rootNode ) ;
98113 }
99114
115+ /**
116+ * @param {BinarySearchTreeNode } rootNode
117+ */
100118 rotateRightRight ( rootNode ) {
101119 // Detach right node from root node.
102120 const rightNode = rootNode . right ;
0 commit comments