1.递归在c中的理解链:函数定义出来就是被人调用的,函数可以自己调用自己。
2.递归是什么:函数自己调用自己的过程。
3.递归分为合法的和不合法的。合法:递归有限次。不合法:栈溢出。
4.递归不能无限递归下去,否则会造成死循环和栈溢出。
5.函数调用形成栈帧,该函数定义的所有局部变量都在该函数栈帧内进行开辟。函数返回时自动释放该函数的栈帧结构。
栈向下增长,堆向上。
6.递归两个条件:
(1)对应问题的子问题必须也能用同样的方法解决。
(2)递归必须有出口。(递归有限)
7.分治法。
8.函数调用是有成本的:时间+空间。
递归的缺点:效率低。优点:代码简单。
9.尽量用迭代。