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);