您的位置:首页 > 其它

由一个例子引起的对递归原理的理解。

2015-07-09 13:16 267 查看
今天由一个例子来对递归函数执行过程进行简要的剖析。

递归,所用到的底层数据结构是栈。即遵循先进后出原则,保存、读取变量。

如果我们想要运用递归,必须满足两个条件:

1,确定初始条件。确定递归何时结束。

2,该问题能够用分治思想,将大问题分解为小问题。

每次,递归调用前,现将函数变量值压入栈;递归结束后,再将变量依次弹出。

下面是一个例子:



程序执行过程:

1.执行6-15行。

第一次入栈,num=4;

...

第五次,num=0;

DOS窗口打印:5 4 3 2 1 0

2.当num=0,执行8行。 if num==0,DOS窗口打印:1:0。注意,在返回之前,应先将栈销毁。

3.执行16-17行,依次将num弹出栈。

2:0

:::

______

______

2:4

:::

4.执行第18行,返回num=4。销毁num栈。

注意,如果没有第18行,这时候返回的是一个任意值。因为,在执行第17行后,num栈元素已经全部弹出,num此时变成一个任意值。

调试结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: