TTreeSentinel
Espacio de programación con IA

Orden estricto de árboles de búsqueda binaria

Valida nodos enteros de búsqueda con dos referencias a hijos.

● ● ●TreeSentinel●
Flujos de trabajo · Orden estricto de árboles de búsqueda binaria ×
def is_strict_bst(root):
    pending, seen, checks = [(root, None, None)], set(), []
    while pending:
        node, low, high = pending.pop()
        if node is None:
            continue
        if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
            raise ValueError("tree.node")
        if id(node) in seen or len(seen) == 1000:
            raise ValueError("tree.structure")
        seen.add(id(node))
        value, left, right = node
        checks.append((value, low, high))
        pending.extend([(right, value, high), (left, low, value)])
    return all((low is None or low < value) and
               (high is None or value < high) for value, low, high in checks)
✳Orden estricto de árboles de búsqueda binaria
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

02

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

03

Proyecto

Comprueba árboles vacíos y límites de ancestros, devuelve falso ante claves duplicadas y rechaza ciclos, hijos compartidos, nodos incorrectos o más de 1000 nodos.

Flujos de trabajo

Orden estricto de árboles de búsqueda binaria

Flujos de trabajo ↗
Flujos de trabajo
def is_strict_bst(root):
    pending, seen, checks = [(root, None, None)], set(), []
    while pending:
        node, low, high = pending.pop()
        if node is None:
            continue
        if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
            raise ValueError("tree.node")
        if id(node) in seen or len(seen) == 1000:
            raise ValueError("tree.structure")
        seen.add(id(node))
        value, left, right = node
        checks.append((value, low, high))
        pending.extend([(right, value, high), (left, low, value)])
    return all((low is None or low < value) and
               (high is None or value < high) for value, low, high in checks)
Espacio de programación con IA

Revisa una estructura antes de confiar en los valores que contiene

TreeSentinel ofrece para el mantenimiento de datos estructurados un espacio de proyectos para Windows y una conversación con IA vinculada a los archivos de código. Empieza mostrando dónde recibe la aplicación una estructura y cómo utiliza el resultado de validación. Pide al modelo que inspeccione todo ese límite antes de proponer una comprobación más sencilla u otro recorrido.

Por ejemplo, una tarea sobre bst_order.py podría investigar un árbol cuyos hijos inmediatos parecen ordenados mientras un valor más profundo incumple el límite de un antecesor. Incluye la estructura que falla y el resultado esperado. Pregunta después cómo se tratan los nodos mal formados y las referencias repetidas, para que una corrección del orden no ignore supuestos sobre la estructura recorrida.

Revisa la propuesta resultante distinguiendo resultados: un árbol válido, un fallo de orden y una estructura mal formada. Ejecuta las comprobaciones pertinentes del proyecto e inspecciona cómo llega cada resultado al consumidor. Explicita cualquier cambio en la política de claves duplicadas. Lo que parece una modificación menor de comparación puede alterar qué datos acepta la aplicación circundante.

TreeSentinel se conecta a endpoints admitidos compatibles con OpenAI o de Anthropic, con credenciales cuando sean necesarias. Puedes seleccionar un modelo de IA ablacionado si tu endpoint lo ofrece. Las restricciones del proveedor, los límites de contexto y las herramientas disponibles siguen formando parte de esa configuración; la revisión debe basarse en estructuras concretas y resultados observables, no en la confianza del modelo.

Preguntas para validar datos estructurados

¿Por qué probar un incumplimiento por debajo de los hijos inmediatos?

Una comparación local puede superarse mientras un descendiente incumple el límite de un antecesor anterior. Aporta un caso anidado pequeño que muestre esa diferencia e indica el resultado esperado. Revisa el recorrido propuesto con ese caso antes de aceptar una simplificación de la validación.

¿Las claves duplicadas son un error de estructura o una decisión de orden?

Defínelo en el contrato de la aplicación. El ejemplo exige un orden estricto, que excluye claves iguales. Inspecciona si el consumidor distingue entradas mal formadas de estructuras bien formadas que incumplen el orden, y conserva esas convenciones de respuesta en el cambio propuesto.

¿Qué cambia una referencia repetida a un nodo?

Puede significar que la entrada no tiene la forma de árbol esperada por la rutina, aunque los valores individuales parezcan aceptables. Incluye un caso con referencias compartidas o un ciclo cuando corresponda. Comprueba la terminación y el rechazo en lugar de depender exclusivamente de ejemplos anidados normales.

¿Puedo sustituir la validación por una comprobación de salida ordenada?

Solo después de tener en cuenta la estructura y el comportamiento de fallo que necesita el consumidor. Una comprobación de valores aplanados puede ocultar nodos mal formados o supuestos del recorrido. Pide al modelo que explique esas ventajas e inconvenientes usando el código real antes de cambiar el contrato de validación.

Descargar para Windows ↗

TreeSentinel · Actualizado 2026-10-25