Solución
JL@juanluisabreu_4c541ef6
·31/3/2026TypeScriptsolution.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