BBranchSpire
Espace de développement avec IA

Reconstruction d’arbres par parcours

Reconstruisez un arbre binaire depuis des parcours préfixe et infixe d’au plus 100 étiquettes entières distinctes.

● ● ●BranchSpire●
Méthodes de travail · Reconstruction d’arbres par parcours ×
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))
✳Reconstruisez un arbre binaire depuis des parcours préfixe et infixe d’au plus 100 étiquettes entières distinctes.
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
01

Modèles

Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.

02

Projet

Testez les arbres vides et déséquilibrés, en rejetant parcours incohérents ou étiquettes répétées sans modifier les entrées.

03

Vérifiez avant d’appliquer

Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.

Méthodes de travail

Reconstruction d’arbres par parcours

Méthodes de travail ↗
Méthodes de travail
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))
Espace de développement avec IA

Préservez la structure en modifiant le code de reconstruction

Des données structurées peuvent réussir des contrôles élémentaires d’appartenance sans décrire une structure valide. BranchSpire est un espace de programmation avec IA sous Windows pour examiner cet écart avec les fichiers du projet sous les yeux. Discutez du contrat d’entrée et de l’objet attendu par l’appelant avant de demander des modifications du code.

Une tâche concrète consiste à examiner la reconstruction à partir de parcours préfixe et infixe. Fournissez un petit arbre valide et une paire de parcours incohérente, puis demandez au modèle connecté d’examiner où l’implémentation les distingue. Précisez l’exigence d’étiquettes distinctes pour que le code proposé ne suppose pas silencieusement une unicité jamais établie par l’appelant.

Examinez l’interface environnante ainsi que la logique récursive. Décidez comment signaler les données invalides et si les appelants dépendent d’une représentation particulière du résultat. Exécutez dans votre projet des tests d’entrée vide, de nœud unique et de combinaisons invalides. Un exemple réussi démontre un chemin ; des cas de rejet explicites aident à établir la limite des données acceptées.

BranchSpire se connecte aux points de terminaison compatibles OpenAI ou Anthropic pris en charge, avec les identifiants requis. Vous pouvez choisir un modèle d’IA ablité disponible, tandis que son serveur détermine les outils et les limites de contexte. Utilisez cette connexion pour élaborer et questionner une proposition, puis évaluez le diff et les résultats d’exécution au regard de la structure requise par votre application.

Préserver la structure du code de reconstruction : questions avant modification

Pourquoi la même appartenance ne suffit-elle pas pour reconstruire ?

L’ordre des parcours doit aussi décrire une structure cohérente. Incluez un ordre invalide contenant les mêmes étiquettes dans la discussion. Demandez au modèle d’identifier où l’implémentation proposée détecte cette incohérence.

Faut-il accepter les étiquettes en double ?

Seulement si le contrat de reconstruction les prend explicitement en charge. La tâche illustrée suppose des étiquettes distinctes. Examinez ensemble la validation et les appelants pour rejeter délibérément les entrées ambiguës, plutôt que produire une structure fondée sur une hypothèse non documentée.

Quels détails de sortie préserver pendant la refactorisation ?

Précisez la représentation des nœuds, la valeur d’arbre vide et l’ordre des enfants attendus par les consommateurs. Un arbre mathématiquement équivalent peut rompre l’intégration si sa représentation change. Examinez ces consommateurs avant d’accepter une refactorisation plus large.

Comment garder une revue de code récursif ciblée ?

Fournissez de courts jeux de test aux résultats connus et demandez une explication des limites et des chemins d’échec. Examinez le diff réel, puis exécutez ces cas avec les outils du projet. Ne vous fiez pas à un long récit sans vérifications correspondantes.

Télécharger pour Windows ↗

BranchSpire · Mis à jour 2026-10-25