递归&栈&队列

递归有两部分组成:

递归条件和基线条件

递归条件是指自动调用自己循环

基线条件指跳出循环的条件

也可以理解为,如何循环和如何退出循环

实例:

求n的阶乘  n!

def aaa(n):

  if n == 1:

    return 1

  else:

    return n*aaa(n-1)

栈和队列:

栈是先进后出,可以理解成往井里放东西,井口就是栈顶,最先放进去的最后出来

队列是先进先出,可以理解往管子里面塞东西,后面的会把前面的顶出来,所以先进去的先出来

栈有两个操作:压入和弹出

所有函数调用都进去调用栈,所以当调用栈很多时,非常吃内存,所以用递归时需要注意,这也是为什么有时宁可用循环也不用递归的原因

你可能感兴趣的:(递归&栈&队列)