Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c5bccff

Browse files
committedApr 3, 2018
Add binary search tree.
1 parent ff2df77 commit c5bccff

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed
 

‎src/data-structures/tree/BinaryTreeNode.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ export default class BinaryTreeNode {
55
this.value = value;
66
}
77

8-
addLeft(node) {
8+
setLeft(node) {
99
this.left = node;
1010
return this;
1111
}
1212

13-
addRight(node) {
13+
setRight(node) {
1414
this.right = node;
1515
return this;
1616
}

‎src/data-structures/tree/__test__/BinaryTreeNode.test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ describe('BinaryTreeNode', () => {
1515
const rootNode = new BinaryTreeNode(2);
1616

1717
rootNode
18-
.addLeft(leftNode)
19-
.addRight(rightNode);
18+
.setLeft(leftNode)
19+
.setRight(rightNode);
2020

2121
expect(rootNode.value).toBe(2);
2222
expect(rootNode.left.value).toBe(1);
@@ -29,8 +29,8 @@ describe('BinaryTreeNode', () => {
2929
const rootNode = new BinaryTreeNode(2);
3030

3131
rootNode
32-
.addLeft(leftNode)
33-
.addRight(rightNode);
32+
.setLeft(leftNode)
33+
.setRight(rightNode);
3434

3535
expect(rootNode.traverseInOrder()).toEqual([1, 2, 3]);
3636

‎src/data-structures/tree/binary-search-tree/BinarySearchTreeNode.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ import BinaryTreeNode from '../BinaryTreeNode';
22

33
export default class BinarySearchTreeNode extends BinaryTreeNode {
44
insert(value) {
5+
if (this.value === null) {
6+
this.value = value;
7+
return this;
8+
}
9+
510
if (value < this.value) {
611
// Insert to the left.
712
if (this.left) {

‎src/data-structures/tree/binary-search-tree/__test__/BinarySearchTreeNode.test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ describe('BinarySearchTreeNode', () => {
99
expect(bstNode.right).toBeNull();
1010
});
1111

12+
it('should insert in itself if it is empty', () => {
13+
const bstNode = new BinarySearchTreeNode();
14+
bstNode.insert(1);
15+
16+
expect(bstNode.value).toBe(1);
17+
expect(bstNode.left).toBeNull();
18+
expect(bstNode.right).toBeNull();
19+
});
20+
1221
it('should insert nodes in correct order', () => {
1322
const bstNode = new BinarySearchTreeNode(2);
1423
bstNode.insert(1);

0 commit comments

Comments
 (0)
Please sign in to comment.