<< Back to main

Node.js Binary Search Tree

Ejemplo de una clase de árbol binario de búsqueda con el métodos básico de add. Utiliza una clase nodo para guardar los datos de cada uno de los items almacenados en él.

Clase Node

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

Clase Binary Search Tree

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

Implementación

let bst = new BinarySearchTree();
bst.add(8);
bst.add(3);
bst.add(4);
bst.add(10);