Logo Passei Direto
Buscar
Em uma função recursiva de busca em árvore binária, erros sutis (como inverter ramos, esquecer retorno ou não tratar caso base) quebram a lógica de ordenação. Sendo assim, analise o pseudocódigo a seguir: Nodo buscaRec(Nodo n, int chave) { if (n == null) return null; if (chave == n.chave) return n; if (chave > n.chave) return buscaRec(n.esquerda, chave); else return buscaRec(n.direita, chave); } Assinale a alternativa que identifique a falha lógica mais crítica: A. Falta tratar raiz nula. B. O caso de igualdade deveria retornar null. C. As chamadas recursivas inverteram esquerda/direita ao comparar maior/menor. D. A função nunca retorna em árvores com duplicatas. E. O teste de maior deveria ser >= para evitar recursão.
User badge image
Laiane Lima

há 2 meses

Respostas

User badge image

Ed Verified user icon

há 2 meses

Vamos analisar o pseudocódigo e as alternativas apresentadas. O pseudocódigo é uma função recursiva que busca um nodo em uma árvore binária. A lógica básica está correta, mas vamos verificar as falhas lógicas: 1. A. Falta tratar raiz nula. - O código já trata o caso em que `n` é nulo, retornando `null`. Portanto, essa alternativa não é a falha crítica. 2. B. O caso de igualdade deveria retornar null. - Isso não faz sentido, pois o objetivo da busca é encontrar o nodo correspondente à chave. Retornar `null` nesse caso não é correto. 3. C. As chamadas recursivas inverteram esquerda/direita ao comparar maior/menor. - Essa é uma falha crítica. O código está correto ao chamar `buscaRec(n.direita, chave)` quando `chave > n.chave` e `buscaRec(n.esquerda, chave)` quando `chave < n.chave`. Portanto, essa alternativa não é a falha. 4. D. A função nunca retorna em árvores com duplicatas. - O pseudocódigo não trata duplicatas, mas isso não é uma falha lógica crítica em relação à busca em si, apenas uma limitação. 5. E. O teste de maior deveria ser >= para evitar recursão. - Essa é uma falha crítica, pois se a árvore contém duplicatas, o código pode entrar em um loop infinito ao não tratar corretamente a condição de igualdade. Após essa análise, a falha lógica mais crítica no pseudocódigo é a alternativa E. O teste de maior deveria ser >= para evitar recursão.

Essa resposta te ajudou?

0
Dislike0
details

Libere essa resposta sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina