Ejercicio00:00
¿Quieres un reto mayor?
Resuelve en 20:00
info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Treap: árbol binario de búsqueda aleatorizado
Master200 pts·Algoritmos
Enunciado
Treap: Árbol Binario de Búsqueda Aleatorizado
Un Treap es una estructura de datos que combina las propiedades de un árbol binario de búsqueda (BST) y un heap. Cada nodo contiene:
- Una clave (
key): que satisface la propiedad BST (clave izquierda < clave nodo < clave derecha). - Una prioridad (
priority): que satisface la propiedad de max-heap (la prioridad del padre es mayor o igual a la de sus hijos).
Gracias a las prioridades (normalmente aleatorias), el árbol se mantiene balanceado en promedio, garantizando operaciones en O(log n) esperado.
Operaciones
Implementa un método treap que recibe una lista de operaciones y devuelve una lista con los resultados de las operaciones "search".
Cada operación es una lista con el formato:
["insert", key, priority]— inserta un nodo con la clave y prioridad dadas. Si la clave ya existe, no hace nada.["delete", key]— elimina el nodo con esa clave. Si no existe, no hace nada.["search", key]— devuelvetruesi la clave existe,falseen caso contrario.
Ejemplo
// operations: [["insert",5,10],["insert",3,8],["insert",7,6],["search",3],["search",4],["delete",3],["search",3]]
// resultado: [true, false, false]
Restricciones
- Las claves son enteros en el rango
[-10^6, 10^6]. - Las prioridades son enteros positivos.
- El número de operaciones es como máximo 1000.
- Solo las operaciones
"search"generan salida.
Restriccionesexpand_more
- Dificultad: Master
- Completa todos los test cases para obtener los 200 puntos.
- No modificar la línea
exportal final del archivo. - Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.
Puedes usar System.out.println() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.
Inicia sesión para reaccionar
Inicia sesión para reaccionar