JSFiddle - React, Tailwind, and code Playground

by Eugene Vilder

JavaScript

class Node {
  constructor(data, left = null, right = null){
	  this.data = data;
    this.left = left;
    this.right = right;
  }
}

class BTree {
  constructor(){
    this.root = null;
  }
  
  searchTree(data, node){
  	if (data < node.data){
    	if (!node.left) {
      	node.left = new Node(data);
        return;
      } else {
				return this.searchTree(data, node.left);
      }
    } else if (data > node.data) {
    	if (!node.right) {
      	node.right = new Node(data);
        return;
      } else {
      	return this.searchTree(data, node.right);
      }
    } else {
    	return null;
    }
  }
  
  add(data){
  	const node = this.root;
  	if (!node) {
    	this.root = new Node(data);
      return;
    } else {
    	return this.searchTree(data, node);
    }
  }
}

const tree = new BTree(10);

tree.add(10);
tree.add(5);
tree.add(15);
tree.add(20);

console.clear();
console.log(tree.root)