栈与递归知识点
上一个知识点   下一个知识点


本节概述 本节知识点 本节总结

四、栈与递归

  众所周知,函数递归调用是程序设计的重要方法。栈在实现函数的递归调用中扮演了重要的角色。例如,递归定义阶乘n!函数如下:
long factorial(long n) {
       if  (n == 0)
             return 1;
       else
             return n * factorial( n-1) ;       // 递归调用
}

n=4时,递归计算时内部栈情况如下 图所示。其中所传递的实参分别用3,2,1,0给出,保存的返回地址分别用①、②、③、④代表,函数值则分别用f=1,f=2,f=6,f=24表示。