Computação Múltipla Escolha

Considere a seguinte árvore. Suponha que p se refere a um nó dessa árvore como está mostrado. Quais das seguintes instruções inseriria o elemento el como filho direito do nó para o qual p aponta?

Considere a seguinte árvore.

Suponha que p se refere a um nó dessa árvore como está mostrado. Quais das seguintes instruções inseriria o elemento el como filho direito do nó para o qual p aponta?

  1. p->right = new TNODE(el)
  2. p = new TNODE(el, p->left, p->right)
  3. p->right = new Object(el)
  4. p->right = new TNODE(el, p->left, p->right)
  5. p = new TNODE(el)

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - p->right = new TNODE(el)

Análise da Questão

Esta questão aborda a manipulação de ponteiros em estruturas de dados, especificamente em árvores binárias implementadas com nós encadeados (geralmente em C++ ou linguagens similares).

Para entender a resposta correta, precisamos analisar o objetivo solicitado pelo enunciado:

  1. O ponteiro p já aponta para um nó existente na árvore.
  2. Deve-se criar um novo nó contendo o elemento el.
  3. Esse novo nó deve ser conectado como filho direito do nó atual.

Comportamento das Instruções

Vamos examinar a lógica por trás da sintaxe utilizada nas opções:

  • Sintaxe de Acesso: p->right acessa o membro right (filho direito) do objeto apontado por p.
  • Alocação de Memória: new TNODE(...) cria uma nova instância da classe TNODE na memória dinâmica.
OpçãoCódigoAnálise
Ap->right = new TNODE(el)Correta. Aloca um novo nó com dado el e atribui seu endereço ao campo right do nó atual.
Bp = new TNODE(...)Incorreta. Reatribui o ponteiro p a um novo nó, desvinculando-o da estrutura original.
Cp->right = new Object(el)Incorreta. A classe usada em árvores é tipicamente TNODE, não genérica Object.
Dp->right = new TNODE(el, p->left, p->right)Incorreta. Passa os filhos atuais de p como filhos do novo nó, criando uma estrutura circular ou duplicada indevidamente.
Ep = new TNODE(el)Incorreta. Substitui o nó apontado por p, perdendo a referência à raiz/subestrutura anterior.

Conclusão Lógica

A instrução necessária deve modificar apenas o ponteiro interno do nó atual (p) sem alterar o próprio ponteiro p. Portanto, a sintaxe padrão para adicionar um filho direito é atribuir um novo objeto ao campo right:

p \rightarrow right = \text{new } TNODE(el)

Isso garante que a árvore seja expandida corretamente mantendo a integridade dos links existentes.

Alternativa A.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.