Computação Múltipla Escolha

Suponha que o método doSomething() é definido por: Quais das frases seguintes descreve melhor o referido método?

Suponha que o método doSomething() é definido por:

1 template<T>
2 public T doSomething(TNODE<T>* node)
3 {
4   if (node != NULL)
5     if (node->right == NULL)
6       return node->element;
7     else
8       return doSomething(node->right);
9   return NULL;
10 }

Quais das frases seguintes descreve melhor o referido método?

  1. Devolve o maior elemento numa árvore de pesquisa binária não vazia
  2. Devolve o maior elemento numa árvore não vazia
  3. Devolve um elemento no mais alto nível de uma árvore não vazia
  4. Devolve o menor elemento numa árvore de pesquisa binária não vazia
  5. Devolve o menor elemento numa árvore não vazia

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A

A questão apresenta um trecho de código em C++ que define um método recursivo chamado doSomething. Para identificar a função correta, precisamos analisar a lógica de travessia da estrutura de dados.

Análise do Código

O método recebe um ponteiro para um nó (*node) e segue os seguintes passos:

  1. Verificação inicial: Se o nó for nulo (NULL), retorna NULL. Isso trata o caso de árvore vazia ou fim de ramo.
  2. Condição de parada: Verifica se o filho à direita é nulo (if (node->right == NULL)).
  3. Retorno: Se não houver filho à direita, retorna o elemento atual (node->element).
  4. Passo recursivo: Se houver filho à direita, chama o próprio método passando o filho à direita (return doSomething(node->right)).

Lógica da Estrutura

Essa lógica percorre exclusivamente a subárvore direita até encontrar um nó que não possui descendente à direita. Em termos de geometria da árvore, ele encontra o nó mais à direita.

Para entender o valor retornado, devemos considerar o tipo de árvore:

  • Árvore Binária Comum: O nó mais à direita não garante ser o maior valor.
  • Árvore de Pesquisa Binária (APB): Nesta estrutura, por definição, todos os valores à direita são maiores que o valor do nó pai. Portanto, o último nó à direita contém o maior elemento da árvore.

Comparação com as Alternativas

OpçãoDescriçãoCorreta?Motivo
aMaior elemento na APBSimCorresponde à lógica de buscar o extremo direito em uma APB.
bMaior elemento na árvoreNãoSem a propriedade de APB, o extremo direito não é necessariamente o maior.
cElemento no mais alto nívelNãoO algoritmo desce em profundidade, não busca o topo.
dMenor elemento na APBNãoPara o menor, o algoritmo deveria buscar o lado esquerdo (left).
eMenor elemento na árvoreNãoRequer busca no lado esquerdo e propriedade de ordenação.

Portanto, a descrição que melhor encaixa na implementação apresentada é aquela que considera a propriedade de ordenação típica de uma Árvore de Pesquisa Binária, onde ir para a direita repetidamente leva ao maior valor.

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.