JSFiddle - React, Tailwind, and code Playground

by hughes

JavaScript

var Node = function (value) {
    this.value = value;
    this.left = null;
    this.right = null;
}

Node.prototype.contains = function(value) {
    if (this === null) {
        return false;
    } else if (value === this.value) {
        return true;
    } else if (value > this.value) {
        return Node.prototype.contains.call(this.right, value);
    } else if (value < this.value) {
        return Node.prototype.contains.call(this.left, value);
    }
    return false;
};

Node.prototype.insert = function(value) {
    if (this === null) {
        return new Node(value);
    } else if (value > this.value) {
        this.right = Node.prototype.insert.call(this.right, value);
    } else if (value < this.value) {
        this.left = Node.prototype.insert.call(this.left, value);
    }
    return this;
};

Node.prototype.delete = function(value) {
    if (this === null) {
        return;
    } else if (value === this.value) {
        return null;
    } else if (value > this.value) {
        this.right = Node.prototype.delete.call(this.right, value);
    } else if (value < this.value) {
        this.left = Node.prototype.delete.call(this.left, value);
    }
    return this;
};

var Tree = function () {
    this.root = null;
}

Tree.prototype.contains = function (value) {
    return Node.prototype.contains.call(this.root, value);
}

Tree.prototype.insert = function(value) {
    this.root = Node.prototype.insert.call(this.root, value);
};

Tree.prototype.delete = function(value) {
    this.root = Node.prototype.delete.call(this.root, value);
};

window.tree = new Tree()
tree.contains(10);
tree.insert(15);