TTreeSentinel
Spațiu de programare cu AI

Ordinea strictă a arborilor binari de căutare

Validează noduri întregi de căutare cu două referințe la copii.

● ● ●TreeSentinel●
Fluxuri de lucru · Ordinea strictă a arborilor binari de căutare ×
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)
✳Ordinea strictă a arborilor binari de căutare
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
01

Verifică înainte de aplicare

Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.

02

Modele

Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.

03

Proiect

Testează arbori goi și limitele strămoșilor, întoarce fals pentru duplicate și respinge cicluri, copii partajați, noduri greșite sau peste 1000 noduri.

Fluxuri de lucru

Ordinea strictă a arborilor binari de căutare

Fluxuri de lucru ↗
Fluxuri de lucru
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)
Spațiu de programare cu AI

Revizuiește structura înainte de a te baza pe valorile ei

TreeSentinel oferă mentenanței datelor structurate un spațiu de proiect Windows și o conversație cu IA legată de fișierele sursă. Începe arătând unde primește aplicația o structură și cum folosește rezultatul validării. Cere modelului să inspecteze întreaga limită înainte de a propune o verificare mai simplă sau o parcurgere diferită.

De exemplu, o sarcină legată de bst_order.py ar putea investiga un arbore ai cărui copii imediați par ordonați, în timp ce o valoare mai adâncă încalcă limita unui strămoș. Include structura care eșuează și rezultatul așteptat. Apoi întreabă cum sunt tratate nodurile incorect formate și referințele repetate, astfel încât corectarea ordinii să nu ignore ipotezele privind forma parcursă.

Revizuiește propunerea rezultată pentru rezultate distincte: un arbore valid, o încălcare a ordinii și o structură incorect formată. Rulează verificările relevante ale proiectului și inspectează cum ajunge fiecare rezultat la consumator. Păstrează explicită orice modificare a politicii privind cheile duplicate. Ceea ce pare o modificare minoră a comparației poate schimba datele acceptate de aplicația din jur.

TreeSentinel se conectează la endpointuri acceptate compatibile cu OpenAI sau Anthropic, cu date de autentificare unde sunt necesare. Poți selecta un model IA abliterat dacă endpointul oferă unul. Restricțiile furnizorului, limitele de context și instrumentele disponibile rămân parte a configurației; revizuirea trebuie să se bazeze pe structuri concrete și rezultate observabile, nu pe încrederea modelului.

Întrebări pentru validarea datelor structurate

De ce să testez o încălcare sub nivelul copiilor imediați?

O comparație locală poate trece deși un descendent încalcă limita unui strămoș anterior. Furnizează un caz mic imbricat care evidențiază diferența și precizează rezultatul așteptat. Revizuiește parcurgerea propusă în raport cu el înainte de a accepta simplificarea logicii de validare.

Sunt cheile duplicate o eroare de formă sau o decizie de ordonare?

Definește acest lucru în contractul aplicației. Exemplul impune ordine strictă, care exclude cheile egale. Inspectează dacă consumatorul distinge intrarea incorect formată de o structură corect formată care încalcă ordinea și păstrează aceste convenții de răspuns în modificarea propusă.

Ce schimbă o referință repetată la un nod?

Poate însemna că intrarea nu are forma de arbore așteptată de rutină, chiar dacă valorile individuale par acceptabile. Include un caz cu referință partajată sau ciclu, unde este adecvat. Verifică terminarea și respingerea, fără a te baza exclusiv pe exemple imbricate obișnuite.

Pot înlocui validarea cu o verificare a rezultatului sortat?

Doar după ce iei în calcul structura și comportamentul la eșec necesare apelantului. O verificare a valorilor aplatizate poate ascunde noduri incorect formate sau ipoteze de parcurgere. Cere modelului să explice aceste compromisuri folosind sursa reală înainte de a modifica contractul validării.

Descarcă pentru Windows ↗

TreeSentinel · Actualizat 2026-10-25