Solución

JL@juanluisabreu_4c541ef6
·31/3/2026TypeScript
solution.tsTypeScript
class Nodo {
  constructor(
    public valor: number,
    public izquierda: Nodo | null = null,
    public derecha: Nodo | null = null,
    ){}
}

class Arbol {
  public base: Nodo | null;

  constructor() {
    this.base = null;
  }

  insertar(valor: number){
    const nuevoNodo = new Nodo(valor);

    if (this.base == null){
      this.base = nuevoNodo;
      return this;
    }

    let nodoActual = this.base;

    while(true){
      if (valor == nodoActual.valor) {
        return this;
      }

      if (valor < nodoActual.valor) {
        if (nodoActual.izquierda == null) {
            nodoActual.izquierda = nuevoNodo;
          return this;
        }
        nodoActual = nodoActual.izquierda;
      }
      else {
        if (nodoActual.derecha == null) {
          nodoActual.derecha = nuevoNodo;
          return this;
        }
        nodoActual = nodoActual.derecha;
      }
    }
  }
 
  buscar(valor: number){
    let nodoActual = this.base;

    while(nodoActual != null) 
    {
        if (nodoActual.valor == valor) {
          return true;
        }

        if (valor < nodoActual.valor) {
          nodoActual = nodoActual.izquierda;
        } else {
          nodoActual = nodoActual.derecha;
        }
    }

    return false;
  }
}

function binarySearchTree(operations: [string, number][]): boolean[] {
  let resultado = [];
  const arbol = new Arbol();


  operations.forEach((operacionActual) => {

    const [operacion, valor] = operacionActual;

    if (operacion == "insert") 
    {
        arbol.insertar(valor);
    } else 
    {
      resultado.push(arbol.buscar(valor));
    }
  });
  
  return resultado;
}

// No modificar: necesario para evaluar el resultado.
export { binarySearchTree };
0respuestas
Respuestas
0

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.
Markdown