BBranchSpire
Ambiente de programação com IA

Reconstrução de árvores por percursos

Reconstrua uma árvore binária com percursos de pré-ordem e em-ordem de até 100 rótulos inteiros distintos.

● ● ●BranchSpire●
Fluxos de trabalho · Reconstrução de árvores por percursos ×
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))
✳Reconstrua uma árvore binária com percursos de pré-ordem e em-ordem de até 100 rótulos inteiros distintos.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
01

Modelos

Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

02

Projeto

Teste árvores vazias e inclinadas, rejeitando percursos incompatíveis ou rótulos repetidos sem editar as entradas.

03

Revise antes de aplicar

Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

Fluxos de trabalho

Reconstrução de árvores por percursos

Fluxos de trabalho ↗
Fluxos de trabalho
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))
Ambiente de programação com IA

Preserve a estrutura ao alterar o código de reconstrução

Dados estruturados podem passar por verificações básicas de pertencimento e ainda assim não descrever uma estrutura válida. O BranchSpire é um ambiente de programação com IA para Windows para examinar essa lacuna com os arquivos do projeto à vista. Comece uma conversa sobre o contrato de entrada e o objeto que o chamador espera receber antes de solicitar mudanças no código-fonte.

Uma tarefa concreta é revisar a reconstrução a partir de percursos em pré-ordem e em ordem. Forneça uma árvore pequena válida e um par inconsistente de percursos; depois, peça ao modelo conectado que examine onde a implementação os distingue. Declare a exigência de rótulos distintos para que o código proposto não presuma silenciosamente uma unicidade que o chamador nunca estabeleceu.

Revise a interface ao redor, além da lógica recursiva. Decida como dados inválidos devem ser informados e se os chamadores dependem de uma representação específica no retorno. Execute casos de teste para entrada vazia, um único nó e combinações inválidas no seu próprio projeto. Um exemplo bem-sucedido demonstra um caminho; casos explícitos de rejeição ajudam a estabelecer o limite dos dados aceitos.

O BranchSpire se conecta a endpoints compatíveis com OpenAI ou endpoints Anthropic suportados, com credenciais quando exigidas. Você pode escolher um modelo de IA abliterado disponível, enquanto seu servidor determina as ferramentas e os limites de contexto. Use essa conexão para desenvolver e questionar uma proposta; depois, avalie o diff e os resultados de execução em relação à estrutura exigida pela aplicação.

Preserve a estrutura ao alterar o código de reconstrução — perguntas antes de editar

Por que ter os mesmos elementos não basta para a reconstrução?

A ordem dos percursos também deve descrever uma estrutura consistente. Inclua uma ordenação inválida com os mesmos rótulos ao discutir a tarefa. Peça ao modelo que identifique o ponto em que a implementação proposta detecta essa inconsistência.

Rótulos duplicados devem ser aceitos?

Somente se o contrato de reconstrução os suportar explicitamente. A tarefa ilustrada presume rótulos distintos. Revise a validação e os chamadores juntos para rejeitar deliberadamente entradas ambíguas, em vez de produzir uma estrutura baseada em uma premissa não documentada.

Que detalhes da saída devem ser preservados durante a refatoração?

Especifique a representação dos nós, o valor da árvore vazia e a ordem dos filhos esperados pelos consumidores. Uma árvore matematicamente equivalente ainda pode quebrar a integração se sua representação mudar. Examine esses consumidores antes de aceitar uma refatoração mais ampla.

Como manter o foco na revisão de código recursivo?

Forneça casos curtos com resultados conhecidos e peça uma explicação dos limites e caminhos de falha. Revise o diff real do código-fonte e execute esses casos com as ferramentas do projeto. Evite depender de uma narrativa longa sem verificações correspondentes.

Baixar para Windows ↗

BranchSpire · Atualizado 2026-10-25