TTreeSentinel
KI-Arbeitsumgebung für Code

Strikte Ordnung binärer Suchbäume

Prüfe ganzzahlige Suchbaumknoten mit zwei Kindverweisen.

● ● ●TreeSentinel●
Arbeitsabläufe · Strikte Ordnung binärer Suchbäume ×
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 Ordnung binärer Suchbäume
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
01

Vor dem Anwenden prüfen

Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.

02

Modelle

Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.

03

Projekt

Teste leere Bäume und Ahnengrenzen, liefere falsch bei doppelten Schlüsseln und lehne Zyklen, geteilte Kinder, fehlerhafte Knoten oder über 1000 Knoten ab.

Arbeitsabläufe

Strikte Ordnung binärer Suchbäume

Arbeitsabläufe ↗
Arbeitsabläufe
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)
KI-Arbeitsumgebung für Code

Eine Struktur prüfen, bevor man ihren Werten vertraut

TreeSentinel bietet für die Pflege strukturierter Daten einen Windows-Projektarbeitsbereich und ein mit Quelldateien verbundenes KI-Gespräch. Zeigen Sie zunächst, wo die Anwendung eine Struktur erhält und wie sie das Validierungsergebnis verwendet. Lassen Sie das Modell diese gesamte Grenze prüfen, bevor es eine einfachere Prüfung oder andere Traversierung vorschlägt.

Eine Aufgabe zu bst_order.py könnte beispielsweise einen Baum untersuchen, dessen unmittelbare Kinder geordnet erscheinen, während ein tieferer Wert die Grenze eines Vorfahren verletzt. Geben Sie die fehlerhafte Struktur und das erwartete Ergebnis an. Fragen Sie dann nach dem Umgang mit fehlerhaften Knoten und wiederholten Referenzen, damit eine Ordnungskorrektur keine Annahmen über die durchlaufene Struktur übersieht.

Prüfen Sie den resultierenden Vorschlag auf unterschiedliche Ergebnisse: einen gültigen Baum, einen Ordnungsverstoß und eine fehlerhafte Struktur. Führen Sie die relevanten Projektprüfungen aus und untersuchen Sie, wie jedes Ergebnis den Verbraucher erreicht. Halten Sie Änderungen an der Regel für doppelte Schlüssel ausdrücklich fest. Eine scheinbar geringfügige Vergleichsänderung kann beeinflussen, welche Daten die umgebende Anwendung akzeptiert.

TreeSentinel verbindet sich mit unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkten, bei Bedarf mit Zugangsdaten. Sie können ein abliteriertes KI-Modell wählen, wenn Ihr Endpunkt eines anbietet. Anbieterbeschränkungen, Kontextgrenzen und verfügbare Werkzeuge bleiben Bestandteil dieser Einrichtung; die Prüfung sollte sich auf konkrete Strukturen und beobachtbare Ergebnisse statt auf die Zuversicht des Modells stützen.

Fragen zur Validierung strukturierter Daten

Warum einen Verstoß unterhalb der unmittelbaren Kinder testen?

Ein lokaler Vergleich kann bestehen, obwohl ein Nachfahre die Grenze eines früheren Vorfahren verletzt. Liefern Sie einen kleinen verschachtelten Testfall, der den Unterschied zeigt, und nennen Sie das erwartete Ergebnis. Prüfen Sie die vorgeschlagene Traversierung daran, bevor Sie die Validierungslogik vereinfachen.

Sind doppelte Schlüssel ein Strukturfehler oder eine Ordnungsentscheidung?

Definieren Sie das im Anwendungsvertrag. Das Beispiel erzwingt strikte Ordnung und schließt damit gleiche Schlüssel aus. Prüfen Sie, ob der Verbraucher fehlerhafte Eingaben von wohlgeformten Strukturen mit Ordnungsverstößen unterscheidet, und bewahren Sie diese Antwortkonventionen in der Änderung.

Was ändert eine wiederholte Knotenreferenz?

Sie kann bedeuten, dass die Eingabe nicht der von der Routine erwarteten Baumform entspricht, selbst wenn einzelne Werte akzeptabel aussehen. Nehmen Sie gegebenenfalls einen Testfall mit geteilter Referenz oder Zyklus auf. Prüfen Sie Terminierung und Zurückweisungsverhalten statt ausschließlich gewöhnlicher verschachtelter Beispiele.

Kann ich die Validierung durch die Prüfung einer sortierten Ausgabe ersetzen?

Erst nach Berücksichtigung der vom Aufrufer benötigten Struktur und des Fehlerverhaltens. Eine Prüfung abgeflachter Werte kann fehlerhafte Knoten oder Traversierungsannahmen verbergen. Lassen Sie das Modell diese Abwägungen anhand des tatsächlichen Quelltexts erklären, bevor Sie den Validierungsvertrag ändern.

Für Windows herunterladen ↗

TreeSentinel · Aktualisiert 2026-10-25