Skip to content

Commit 7d85bfa

Browse files
authored
Merge pull request #16 from datastructures-js/development
v3.0.1
2 parents 4be470e + ecbe486 commit 7d85bfa

File tree

4 files changed

+22
-14
lines changed

4 files changed

+22
-14
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [3.0.1] - 2020-03-29
10+
### Fixed
11+
- return the updated node in `.insert`
12+
913
## [3.0.0] - 2020-03-28
1014
### Changed
1115
- New release

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@datastructures-js/binary-search-tree",
3-
"version": "3.0.0",
3+
"version": "3.0.1",
44
"description": "binary search tree implementation in javascript",
55
"main": "index.js",
66
"scripts": {

src/binarySearchTree.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@ class BinarySearchTree {
2323
* @return {BinarySearchTreeNode}
2424
*/
2525
insert(key, value, node = this.rootNode) {
26-
const newNode = new BinarySearchTreeNode(key, value);
27-
2826
if (node === null) {
29-
this.rootNode = newNode;
27+
this.rootNode = new BinarySearchTreeNode(key, value);
3028
this.nodesCount += 1;
31-
return newNode;
29+
return this.rootNode;
3230
}
3331

3432
if (key < node.getKey() && node.getLeft() === null) {
33+
const newNode = new BinarySearchTreeNode(key, value);
3534
node.setLeft(newNode);
3635
newNode.setParent(node);
3736
this.nodesCount += 1;
3837
return newNode;
3938
}
4039

4140
if (key > node.getKey() && node.getRight() === null) {
41+
const newNode = new BinarySearchTreeNode(key, value);
4242
node.setRight(newNode);
4343
newNode.setParent(node);
4444
this.nodesCount += 1;
@@ -47,7 +47,7 @@ class BinarySearchTree {
4747

4848
if (key === node.getKey()) {
4949
node.setValue(value);
50-
return newNode;
50+
return node;
5151
}
5252

5353
if (key < node.getKey()) {

test/binarySearchTree.test.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@ describe('binarySearchTree tests', () => {
77

88
describe('.insert(key, value)', () => {
99
it('should insert nodes to the tree', () => {
10-
bst.insert(50, 'n1');
11-
bst.insert(80, 'n2');
12-
bst.insert(30, 'n3');
13-
bst.insert(90, 'n4');
14-
bst.insert(60, 'n5');
15-
bst.insert(40, 'n6');
16-
bst.insert(20, 'n20');
17-
bst.insert(20, 'n7'); // updates value of existing node
10+
expect(bst.insert(50, 'n1')).to.be.instanceof(BinarySearchTreeNode);
11+
expect(bst.insert(80, 'n2')).to.be.instanceof(BinarySearchTreeNode);
12+
expect(bst.insert(30, 'n3')).to.be.instanceof(BinarySearchTreeNode);
13+
expect(bst.insert(90, 'n4')).to.be.instanceof(BinarySearchTreeNode);
14+
expect(bst.insert(60, 'n5')).to.be.instanceof(BinarySearchTreeNode);
15+
expect(bst.insert(40, 'n6')).to.be.instanceof(BinarySearchTreeNode);
16+
expect(bst.insert(20, 'n20')).to.be.instanceof(BinarySearchTreeNode);
17+
18+
// updates value of existing node
19+
const updated = bst.insert(20, 'n7');
20+
expect(updated).to.be.instanceof(BinarySearchTreeNode);
21+
expect(updated.getParent().getKey()).to.equal(30);
1822
});
1923
});
2024

0 commit comments

Comments
 (0)