Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — Quadrix 2019

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq551962
Banca
Quadrix
Órgão
Prefeitura de Jataí - GO
Ano
2019
Nível
Superior
Cargo
Analista de Tecnologia da Informação
A situação em que dois subprogramas fazem chamadas recíprocas, como, por exemplo, um subprograma P faz uma chamada a um subprograma J, que, por sua vez, faz uma chamada a P, é caracterizada como uma
  1. Arecursividade direta.
  2. Brecursividade indireta.
  3. Crecursividade simples.
  4. Dlista linear simples.
  5. Elista circular.
Revelar gabarito e comentário

GabaritoB — recursividade indireta.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Recursividade: direta × indireta

Gabarito: letra B. A situação descrita — dois subprogramas que fazem chamadas recíprocas (P chama J e J chama P) — é o exemplo clássico de recursividade indireta, também chamada de recursão mútua. Na recursividade direta, um subprograma chama a si mesmo diretamente; na indireta, a chamada ocorre por intermédio de outro subprograma.

A banca testa a diferença entre os dois tipos de recursão. Veja a comparação:

Característica

Recursividade Direta

Recursividade Indireta

Chamada

O próprio subprograma invoca a si mesmo

Subprograma A invoca B, que invoca A (ou cadeia maior)

Exemplo típico

Fatorial recursivo: fat(n) chama fat(n-1)

Funções par e ímpar que se alternam

Complexidade de rastreio

Mais simples de entender

Pode exigir mais atenção para acompanhar a pilha de chamadas

Recursividade
  • 1Direta
    • Subprograma chama a si mesmo
    • Ex.: fatorial
  • 2Indireta (mútua)
    • P chama J, J chama P
    • Ex.: par/ímpar
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que se trata de recursividade direta. O erro está em confundir o conceito: na direta, um único subprograma chama a si mesmo; no enunciado, há dois subprogramas com chamadas recíprocas, o que caracteriza a indireta.

Alternativa B — ✅ Correta ⟵ GABARITO

A chamada recíproca entre dois subprogramas é exatamente a definição de recursividade indireta. A banca descreve o caso típico: P chama J, que chama P novamente.

Alternativa C — ❌ Incorreta

“Recursividade simples” não é um termo técnico consagrado; quando usado, costuma ser sinônimo de recursividade direta. Portanto, incorre no mesmo erro da alternativa A.

Alternativa D — ❌ Incorreta

Lista linear simples é uma estrutura de dados (cada elemento aponta para o próximo), não um tipo de recursão. Não se aplica ao contexto de chamadas entre subprogramas.

Alternativa E — ❌ Incorreta

Lista circular é outra estrutura de dados (o último elemento aponta para o primeiro), também sem relação com recursão.

NÃO CAIA NESSA!

A banca explora a confusão entre recursividade direta e indireta. O candidato pode ler “chamadas recíprocas” e marcar “direta” por associação imediata com o termo “recursão”. Lembre-se: se a chamada envolve dois ou mais subprogramas em ciclo, é indireta. Se é um único subprograma chamando a si mesmo, é direta.

Gabarito: letra B.

Link permanente: /questoes/qq551962