TechLead
Intermedio
20 min
Guía completa

Árboles de búsqueda binaria

Propiedades de BST, operaciones y árboles balanceados

Árbol de búsqueda binaria (BST)

Un BST es un árbol binario donde para cada nodo: valores del subárbol izquierdo < valor del nodo < valores del subárbol derecho. Esto permite búsqueda O(log n) en árboles balanceados.

Operaciones del BST

class BSTNode {
  constructor(value) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

class BST {
  constructor() {
    this.root = null;
  }

  insert(value) {
    const newNode = new BSTNode(value);
    if (!this.root) {
      this.root = newNode;
      return;
    }
    let current = this.root;
    while (true) {
      if (value < current.value) {
        if (!current.left) {
          current.left = newNode;
          return;
        }
        current = current.left;
      } else {
        if (!current.right) {
          current.right = newNode;
          return;
        }
        current = current.right;
      }
    }
  }

  search(value) {
    let current = this.root;
    while (current) {
      if (value === current.value) return true;
      current = value < current.value ? current.left : current.right;
    }
    return false;
  }

  findMin() {
    let current = this.root;
    while (current && current.left) current = current.left;
    return current ? current.value : null;
  }

  findMax() {
    let current = this.root;
    while (current && current.right) current = current.right;
    return current ? current.value : null;
  }
}

Complejidad temporal: O(log n) promedio, O(n) peor caso (desbalanceado). Árboles balanceados (AVL, Red-Black) garantizan O(log n).