Em funções recursivas, a posição da chamada recursiva em relação às demais linhas de código influencia a ordem em que o processamento acontece. Dependendo da recursividade (pré-ordem ou pós-ordem), a ordem de execução das chamadas recursivas ou, finalmente, pós-ordem (processamento após as chamadas recursivas). Para essa questão, suponha o código a seguir:
Em funções recursivas, a posição da chamada recursiva em relação às demais linhas de código influencia a ordem em que o processamento acontece. Dependendo da recursividade (pré-ordem ou pós-ordem), a ordem de execução das chamadas recursivas ou, finalmente, pós-ordem (processamento após as chamadas recursivas). Para essa questão, suponha o código a seguir:
#include <stdio.h>
void Recurso1(int i) {
if(i>=5) return;
printf("%d ", i);
Recurso1(i+1);
}
void Recurso2(int i) {
if(i>=5) return;
Recurso2(i+1);
printf("%d ", i);
}
int main() {
Recurso1(0);
printf("\n");
Recurso2(0);
return 0;
}- A função Recurso1 segue uma recursão pré-ordem - logo o seu resultado é ‘0 1 2 3 4’. Por sua vez, a função Recurso2 é pós-ordem, por consequência, o seu resultado é ‘4 3 2 1 0’.
- A função Recurso1 segue uma recursão pós-ordem - logo o seu resultado é ‘4 3 2 1 0’. Por sua vez, a função Recurso2 é pré-ordem, por consequência, o seu resultado é ‘0 1 2 3 4’.
- A função Recurso1 segue uma recursão pré-ordem - logo o seu resultado é ‘4 3 2 1 0’. Por sua vez, a função Recurso2 é pós-ordem, por consequência, o seu resultado é ‘0 1 2 3 4’.
- A função Recurso1 segue uma recursão pós-ordem - logo o seu resultado é ‘4 3 2 1 0’. Por sua vez, a função Recurso2 é pré-ordem, por consequência, o seu resultado é ‘0 1 2 3 4’.
- A função Recurso1 segue uma recursão pós-ordem - logo o seu resultado é ‘0 1 2 3 4’. Por sua vez, a função Recurso2 é pós-ordem, por consequência, o seu resultado é ‘4 3 2 1 0’.