每一个方法的运行,我门认为它是入栈,当一个方法调用完,我们认为它出栈。
递归就是自己方法里面调用自己方法,方法里面提供一个退出点。
//斐波那契数列 递归实现 栈的应用
static int Fbi(int i) {
Console.WriteLine("Fbi(" + i + ") 被调用(入栈)");
if (i < 2)
{
num++;
Console.WriteLine("Fbi(" + i + ") 调用完毕(出栈)");
return i == 0 ? 0 : 1;
}
int a = Fbi(i - 1);
int b = Fbi(i - 2);
Console.WriteLine("Fbi(" + i + ") 调用完毕(出栈)");
return a + b;
}