diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5c88c9b..421dafa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [3.1.4] - 2020-04-12
+### Fixed
+- jsdoc
+
## [3.1.3] - 2020-04-10
### Fixed
- README
diff --git a/README.md b/README.md
index 7d43af9..3f22d6e 100644
--- a/README.md
+++ b/README.md
@@ -484,7 +484,7 @@ returns node's parent node.
### AvlTreeNode
-extends BinarySearchTreeNode and add the following methods:
+extends BinarySearchTreeNode and adds the following methods:
#### .getHeight()
the height of the node in the tree. root height is 1.
diff --git a/package.json b/package.json
index 9d32112..d163c2e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@datastructures-js/binary-search-tree",
- "version": "3.1.3",
+ "version": "3.1.4",
"description": "binary search tree & avl tree (self balancing tree) implementation in javascript",
"main": "index.js",
"scripts": {
diff --git a/src/avlTree.js b/src/avlTree.js
index f9782c3..e22a382 100644
--- a/src/avlTree.js
+++ b/src/avlTree.js
@@ -1,5 +1,5 @@
/**
- * datastructures-js/binary-search-tree
+ * @datastructures-js/binary-search-tree
* @copyright 2020 Eyas Ranjous
* @license MIT
*/
@@ -17,7 +17,7 @@ class AvlTree extends BinarySearchTree {
* applies the proper rotation on nodes after an insert or remove
* @param {AvlTreeNode} node
*/
- balanceNode(node) {
+ _balanceNode(node) {
if (!node) return;
node.updateHeight();
@@ -42,12 +42,11 @@ class AvlTree extends BinarySearchTree {
/**
* @public
- *
* inserts a node with a key/value into tree
* and maintains the tree balanced by applying the necessary rotations
- *
* @param {number|string} key
- * @param {object} vaue
+ * @param {object} value
+ * @param {AvlTreeNode} node
* @return {AvlTreeNode} the inserted node
*/
insert(key, value, node = this._root) {
@@ -82,27 +81,35 @@ class AvlTree extends BinarySearchTree {
if (key < node.getKey()) {
const newNode = this.insert(key, value, node.getLeft());
- this.balanceNode(node); // back-tracking
+ this._balanceNode(node); // back-tracking
return newNode;
}
const newNode = this.insert(key, value, node.getRight());
- this.balanceNode(node); // back-tracking
+ this._balanceNode(node); // back-tracking
return newNode;
}
+ /**
+ * @public
+ * remove a node by its key
+ * and maintains the tree balanced by applying the necessary rotations
+ * @param {number|string} key
+ * @param {AvlTreeNode} node
+ * @return {boolean}
+ */
remove(key, node = this._root) {
if (node === null) return false;
if (key < node.getKey()) {
const removed = this.remove(key, node.getLeft());
- this.balanceNode(node);
+ this._balanceNode(node);
return removed;
}
if (key > node.getKey()) {
const removed = this.remove(key, node.getRight());
- this.balanceNode(node);
+ this._balanceNode(node);
return removed;
}
diff --git a/src/avlTreeNode.js b/src/avlTreeNode.js
index 648dd6e..f502985 100644
--- a/src/avlTreeNode.js
+++ b/src/avlTreeNode.js
@@ -10,7 +10,6 @@ const BinarySearchTreeNode = require('./binarySearchTreeNode');
* @class AvlTreeNode
* @extends BinarySearchTreeNode
*/
-
class AvlTreeNode extends BinarySearchTreeNode {
constructor(key, value) {
super(key, value);