递归有两部分组成:
递归条件和基线条件
递归条件是指自动调用自己循环
基线条件指跳出循环的条件
也可以理解为,如何循环和如何退出循环
实例:
求n的阶乘 n!
def aaa(n):
if n == 1:
return 1
else:
return n*aaa(n-1)
栈和队列:
栈是先进后出,可以理解成往井里放东西,井口就是栈顶,最先放进去的最后出来
队列是先进先出,可以理解往管子里面塞东西,后面的会把前面的顶出来,所以先进去的先出来
栈有两个操作:压入和弹出
所有函数调用都进去调用栈,所以当调用栈很多时,非常吃内存,所以用递归时需要注意,这也是为什么有时宁可用循环也不用递归的原因
网友评论