数据结构---栈与递归
递归
-
递归实际上是自己调用自己,知道满足终止条件,在进行回溯的过程,不好理解可以参考下列程序,实际上就是将递归过程中的单个元素写开来的形式。
-
先从主函数里面开始,分别调用了fun4-->fun3-->fun2-->fun1。fun1中获得返回值后再往上一级返回,fun1-->fun2-->fun3-->fun4-->a
-
由于栈的现进后出与上述过程完全一致,所以可以使用栈来实现递归,递归的过程就是先进栈在出栈的过程
-
先按照顺序进行调用
graph LR
A[a] -->B(fun1)-->C(fun2)-->D(fun3)-->E(fun4)
- 然后回溯
graph LR
E(fun4)-->D(fun3)-->C(fun2)-->B(fun1)-->A[a]
#include <iostream>
#include <string>
using namespace std;
int fun1(int i)
{
return i+1;
}
int fun2(int j)
{
return fun1(j+1);
}
int fun3(int k)
{
return fun2(k+1);
}
int fun4(int l)
{
return fun3(l+1);
}
int main()
{
int a = fun4(0);
cout<<"a="<<a<<endl;
return 0;
}

浙公网安备 33010602011771号