TTreeSentinel
AI-werkruimte voor code

Strikte ordening van binaire zoekbomen

Controleer gehele zoekboomknopen met twee kindverwijzingen.

● ● ●TreeSentinel●
Werkprocessen · Strikte ordening van binaire zoekbomen ×
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)
✳Strikte ordening van binaire zoekbomen
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
01

Controleer vóór het toepassen

Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

02

Modellen

Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.

03

Project

Test lege bomen en vooroudergrenzen, geef onwaar voor dubbele sleutels en weiger cycli, gedeelde kinderen, ongeldige knopen of meer dan 1000 knopen.

Werkprocessen

Strikte ordening van binaire zoekbomen

Werkprocessen ↗
Werkprocessen
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)
AI-werkruimte voor code

Beoordeel een structuur voordat u de waarden erin vertrouwt

TreeSentinel biedt een Windows-projectwerkruimte voor onderhoud aan gestructureerde gegevens en een AI-gesprek gekoppeld aan bronbestanden. Laat eerst zien waar de toepassing een structuur ontvangt en hoe zij het validatieresultaat gebruikt. Vraag het model die volledige grens te inspecteren voordat het een eenvoudigere controle of andere traversal voorstelt.

Een taak rond bst_order.py kan bijvoorbeeld een boom onderzoeken waarvan de directe kinderen geordend lijken, terwijl een dieper gelegen waarde een grens van een voorouder schendt. Geef de falende structuur en het verwachte resultaat. Vraag vervolgens hoe onjuist gevormde knopen en herhaalde verwijzingen worden afgehandeld, zodat een ordeningsreparatie geen aannames over de doorlopen structuur over het hoofd ziet.

Beoordeel het resulterende voorstel op afzonderlijke uitkomsten: een geldige boom, een ordeningsfout en een onjuist gevormde structuur. Voer de relevante projectcontroles uit en inspecteer hoe elke uitkomst de gebruikende code bereikt. Houd elke wijziging in beleid voor dubbele sleutels expliciet. Een ogenschijnlijk kleine vergelijkingswijziging kan veranderen welke gegevens de omliggende toepassing accepteert.

TreeSentinel maakt verbinding met ondersteunde OpenAI-compatibele of Anthropic-eindpunten, met inloggegevens waar nodig. U kunt een abliterated AI-model selecteren als uw eindpunt er een aanbiedt. De aanbiedersbeperkingen, contextlimieten en beschikbare hulpmiddelen blijven onderdeel van die configuratie; de beoordeling moet steunen op concrete structuren en waarneembare uitkomsten, niet op het zelfvertrouwen van het model.

Vragen voor de validatie van gestructureerde gegevens

Waarom een schending onder de directe kinderen testen?

Een lokale vergelijking kan slagen terwijl een afstammeling de grens van een eerdere voorouder schendt. Geef een klein genest testgeval dat dat verschil blootlegt en vermeld het verwachte resultaat. Toets de voorgestelde traversal eraan voordat u een vereenvoudiging van de validatielogica aanvaardt.

Zijn dubbele sleutels een structuurfout of een ordeningsbeslissing?

Definieer dat in het toepassingscontract. Het voorbeeld dwingt strikte ordening af, waardoor gelijke sleutels zijn uitgesloten. Inspecteer of de gebruikende code onjuist gevormde invoer onderscheidt van een goed gevormde structuur die de ordening schendt, en behoud die reactieconventies in de wijziging.

Wat verandert een herhaalde knoopverwijzing?

Die kan betekenen dat de invoer niet de boomstructuur heeft die de routine verwacht, zelfs als afzonderlijke waarden aanvaardbaar lijken. Voeg waar passend een testgeval met gedeelde verwijzingen of een cyclus toe. Controleer beëindiging en afwijzingsgedrag in plaats van uitsluitend op gewone geneste voorbeelden te vertrouwen.

Kan ik validatie vervangen door een controle op gesorteerde uitvoer?

Alleen nadat rekening is gehouden met de structuur en het foutgedrag dat de aanroepende code nodig heeft. Een controle op platgemaakte waarden kan onjuist gevormde knopen of traversalaannames verbergen. Laat het model die afwegingen aan de hand van de echte broncode uitleggen voordat u het validatiecontract wijzigt.

Download voor Windows ↗

TreeSentinel · Bijgewerkt 2026-10-25