GeraProva GeraProva Provas com IA para professores do Brasil
Computação3ª sérieBNCC EM13CO01Difícil⏱ longo

Descreva um algoritmo em pseudocódigo que, dada uma árvore enraizada onde cada nó mantém uma lista arbitrária…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO01

Explorar e construir a solução de problemas por meio da reutilização de partes de soluções existentes.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Descreva um algoritmo em pseudocódigo que, dada uma árvore enraizada onde cada nó mantém uma lista arbitrária de filhos (representação n-ária), converta-a em uma árvore binária usando a técnica 'filho-esquerdo / irmão-direito' (left-child right-sibling).

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Precondição: cada nó tem 'children' (lista possivelmente vazia). Pós-condição: cada nó terá ponteiros 'left' e 'right' correspondentes a filho-esquerdo e irmão-direito. Pseudocódigo (retorna referência ao nó convertido): function ConvertToLeftChildRightSibling(node): if node == null: return null // converte todos os filhos recursivamente convertedChildren = [] for c in node.children: convertedChildren.append(ConvertToLeftChildRightSibling(c)) // vincula o primeiro filho como left if length(convertedChildren) == 0: node.left = null else: node.left = convertedChildren[0] // vincula irmãos pela ponte 'right' curr = node.left i = 1 while i < length(convertedChildren): curr.right = convertedChildren[i] curr = curr.right i = i + 1 // o ponteiro right do próprio nó permanece para o irmão no nível superior // se não houver irmão, será null (tratado pelos chamadores) node.right = node.right // mantém valor do contexto de chamada // opcional: liberar/ignorar node.children se não mais necessário return node Observações: a técnica define left = primeiro filho e right = próximo irmão. O algoritmo percorre a árvore n-ária recursivamente, converte cada subárvore de filho e liga os irmãos em cadeia usando o ponteiro right.

Explicação

O algoritmo utiliza uma abordagem recursiva para converter cada nó da árvore n-ária em uma estrutura binária, onde o primeiro filho se torna o filho esquerdo e os irmãos são encadeados como filhos direitos. A lógica de vinculação garante que todos os filhos e irmãos sejam corretamente conectados, mantendo a hierarquia original da árvore. A implementação também cuida de casos em que um nó não possui filhos, assegurando que a conversão ocorra de maneira completa e eficiente.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

árvore n-ária para árvore binária

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estrutura de dados · árvore n-ária

📚 Reveja

Revisar a técnica de conversão de árvores e pseudocódigo.

⚠️ Erro mais comum

O aluno pode confundir a representação de filhos e irmãos, criando uma estrutura incorreta na árvore binária.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.