Questão de Algoritmos e Estrutura de Dados — Algoritmos — Quadrix 2019
Algoritmos e Estrutura de Dados›Algoritmos
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
Arecursividade direta.
Brecursividade indireta.
Crecursividade simples.
Dlista linear simples.
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.