简单递归问题的答案很容易预测,但是当它一次涉及多个调用时会变得困难(这里e( - n)被调用两次 在单一范围内)。 我的问题是如何通过创建TREE类型的结构来解决这种程序
void e(int);
int main(void)
{
int a = 3;
e(a);
putchar('\n');
return 0;
}
void e(int n)
{
if (n > 0)
{
e(--n);
printf("%d ", n);
e(--n);
}
}
答案 0 :(得分:0)
如果你用一支铅笔在一张纸上做,你应该得到这个:
call => E(3);
call => E(2);
call => E(1);
call => E(0);
初始printf:0
call => E(-1);
初始printf:1
call => E(0);
初始printf:2
call => E(1);
call => E(0);
初始printf:0
call => E(-1);