BBranchSpire
KI-Arbeitsumgebung für Code

Baumrekonstruktion aus Durchläufen

Rekonstruiere einen Binärbaum aus Preorder- und Inorder-Listen mit höchstens 100 verschiedenen ganzzahligen Marken.

● ● ●BranchSpire●
Arbeitsabläufe · Baumrekonstruktion aus Durchläufen ×
def rebuild_tree(preorder, inorder):
    for row in (preorder,inorder):
        if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
            raise ValueError("at most 100 integer nodes")
    if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
        raise ValueError("same distinct node labels")
    positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
    def visit(lo,hi):
        nonlocal cursor
        if lo == hi: return None
        value = preorder[cursor]; cursor += 1
        at = positions[value]
        if not lo <= at < hi: raise ValueError("inconsistent traversals")
        left = visit(lo,at)
        right = visit(at+1,hi)
        return value,left,right
    return visit(0,len(inorder))
✳Rekonstruiere einen Binärbaum aus Preorder- und Inorder-Listen mit höchstens 100 verschiedenen ganzzahligen Marken.
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
01

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.

02

Projekt

Prüfe leere und einseitige Bäume und lehne widersprüchliche Durchläufe oder doppelte Marken ohne Eingabeänderung ab.

03

Vor dem Anwenden prüfen

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

Arbeitsabläufe

Baumrekonstruktion aus Durchläufen

Arbeitsabläufe ↗
Arbeitsabläufe
def rebuild_tree(preorder, inorder):
    for row in (preorder,inorder):
        if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
            raise ValueError("at most 100 integer nodes")
    if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
        raise ValueError("same distinct node labels")
    positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
    def visit(lo,hi):
        nonlocal cursor
        if lo == hi: return None
        value = preorder[cursor]; cursor += 1
        at = positions[value]
        if not lo <= at < hi: raise ValueError("inconsistent traversals")
        left = visit(lo,at)
        right = visit(at+1,hi)
        return value,left,right
    return visit(0,len(inorder))
KI-Arbeitsumgebung für Code

Bei Änderungen am Rekonstruktionscode die Struktur bewahren

Strukturierte Daten können einfache Zugehörigkeitsprüfungen bestehen und trotzdem keine gültige Struktur beschreiben. BranchSpire ist ein KI-Programmierarbeitsbereich für Windows, um diese Lücke mit Blick auf Ihre Projektdateien zu untersuchen. Besprechen Sie den Eingabevertrag und das vom Aufrufer erwartete Objekt, bevor Sie Quelltextänderungen anfordern.

Eine konkrete Aufgabe ist die Prüfung der Rekonstruktion aus Präorder- und Inorder-Traversierungen. Liefern Sie einen kleinen gültigen Baum und ein widersprüchliches Traversierungspaar und lassen Sie das verbundene Modell prüfen, wo die Implementierung sie unterscheidet. Geben Sie die Anforderung unterschiedlicher Knotenbezeichnungen an, damit der vorgeschlagene Code nicht stillschweigend Eindeutigkeit voraussetzt, die der Aufrufer nie sichergestellt hat.

Prüfen Sie neben der rekursiven Logik auch die umgebende Schnittstelle. Entscheiden Sie, wie ungültige Daten gemeldet werden und ob Aufrufer eine bestimmte Rückgabedarstellung erwarten. Führen Sie im eigenen Projekt Testfälle für leere Eingaben, einen einzelnen Knoten und ungültige Kombinationen aus. Ein erfolgreiches Beispiel zeigt einen Ausführungspfad; ausdrückliche Zurückweisungsfälle helfen, die Grenze akzeptierter Daten zu bestimmen.

BranchSpire verbindet sich mit unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkten, bei Bedarf mit Zugangsdaten. Sie können ein verfügbares abliteriertes KI-Modell wählen; dessen Server bestimmt Werkzeuge und Kontextgrenzen. Entwickeln und hinterfragen Sie über diese Verbindung einen Vorschlag und beurteilen Sie anschließend Diff und Ausführungsergebnisse anhand der von Ihrer Anwendung benötigten Struktur.

Struktur bei Rekonstruktionsänderungen bewahren – Fragen vor der Bearbeitung

Warum reicht übereinstimmende Zugehörigkeit für die Rekonstruktion nicht?

Auch die Reihenfolge der Traversierungen muss eine konsistente Struktur beschreiben. Nehmen Sie eine ungültige Reihenfolge mit denselben Bezeichnungen in die Aufgabenbesprechung auf. Lassen Sie das Modell die Stelle benennen, an der die vorgeschlagene Implementierung diesen Widerspruch erkennt.

Sollten doppelte Knotenbezeichnungen akzeptiert werden?

Nur wenn der Rekonstruktionsvertrag sie ausdrücklich unterstützt. Die Beispielaufgabe setzt unterschiedliche Bezeichnungen voraus. Prüfen Sie Validierung und Aufrufer gemeinsam, damit mehrdeutige Eingaben bewusst zurückgewiesen werden, statt aufgrund undokumentierter Annahmen eine Struktur zu erzeugen.

Welche Ausgabedetails sollten beim Refactoring erhalten bleiben?

Geben Sie Knotendarstellung, Wert für einen leeren Baum und die von Nutzern erwartete Kindreihenfolge an. Ein mathematisch gleichwertiger Baum kann bei geänderter Darstellung dennoch die Integration brechen. Prüfen Sie diese Nutzer vor einem umfassenderen Refactoring.

Wie halte ich die Prüfung rekursiven Codes zielgerichtet?

Liefern Sie kurze Testfälle mit bekannten Ergebnissen und fordern Sie eine Erklärung der Grenzen und Fehlerpfade an. Prüfen Sie den tatsächlichen Quelltext-Diff und führen Sie die Fälle anschließend mit Ihren Projektwerkzeugen aus. Verlassen Sie sich nicht auf lange Erläuterungen ohne entsprechende Prüfungen.

Für Windows herunterladen ↗

BranchSpire · Aktualisiert 2026-10-25