4.9 递归函数的栈图

最后更新于:2022-04-01 06:19:48

在前面的章节中,我们使用了一个栈图来表示一个程序在函数调用时所处的状态。 同样的图形也能使得递归函数的解释变得更容易些。 每次函数被调用,它都会创建一个新的实例,包含着函数的局部变量和参数。 本图说明了函数countdown的一个栈图,调用时n的初始值为3; ![enter image description here](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-01_55e55c6fdb7be.jpg) 图中有一个main函数的实例和四个countdown函数的实例,每个实例中的参数n的值都不同。栈底的countdown实例n取值为0。它没有进行递归调用,因此没有更多的countdown实例。 main函数的实例是空的,因为main函数没有任何参数或者局部变量。作为一个练习,请你为nLines画出一个栈图,参数n取值为4。
';