递归&栈&队列

递归有两部分组成:

递归条件和基线条件

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

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

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

实例:

求n的阶乘  n!

def aaa(n):

  if n == 1:

    return 1

  else:

    return n*aaa(n-1)

栈和队列:

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,522评论 8 265
  • 栈 栈是限定仅在表尾进行插入和操作的线性表;允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为...
    Bangys阅读 457评论 0 0
  • 1.栈 1.1.栈的定义 栈(stack)是限定仅在表尾(栈顶 top)进行插入和删除操作的后进先出的线性表。 p...
    JonyFang阅读 1,385评论 0 21
  • 无论是给自己还是给朋友,你有多久没有写过信了?如果明信片算是信的话,我前不久刚给自己写过。 信,读小学...
    阿i遥阅读 305评论 0 0
  • 小云也不知道是不什么东西在揪着自己,弄得心脏突突的疼,这种钝痛使得她嚼着辣条的嘴都不听使唤的慢了下来,就好...
    土豆粉儿阅读 560评论 1 2