递归就是一个函数调用该函数本身。。。。
但必须要有终止条件。。。。。
举上楼的例子:
wetl(int n)
{
if(n!=0) return wetl(n-1);
else
return n;
}
假若n=2;
n!=0
执行 wetl(n-1),也就是welt(1);//要清楚此时还未跳出wetl(2){。。。。。}这个函数,它处于等待之中;
1!=0;
执行 wetl(n-1),也就是welt(0);//要清楚此时还未跳出wetl(1){。。。。。}这个函数,它处于等待之中;
0=0;则执行return n;
此时要返回上一层 去完成welt(1);
完成welt(1);后返回上层 去完成welt(2);
完成welt(2);后返回上层 去完成welt(3);
此时回到了初始状态,结束
好好想想假若一个函数A里有两个其它函数B C,如果仅执行了B函数,那么A函数就算执行完了吗???还有B都未执行完可以直接跳到C函数吗???所以必须去执行完B函数,等B完成后,跳出B函数去完成C函数,A函数才算完成。
递归就是把上面的B函数换成A函数,即A函数里有两个函数A C,然后去执行
温馨提示:内容为网友见解,仅供参考