算法图解之递归和栈

递归
递归是本人最爱的主题,它将人分成三个不同的阵营:恨他的,爱他的以及恨了几年又爱上他的。
循环的思想
算法图解之递归和栈_第1张图片(1)创建一个要查找的盒子堆
(2)从盒子堆取出一个盒子,在里面找
(3)如何找出的是盒子,就将其加入盒子堆,以便以后再查找。
(4)如果找到钥匙,则大功告成
(5)回到第二步
递归的思想
算法图解之递归和栈_第2张图片(1)检查盒子中的每样东西
(2)如果是盒子,就回到第一步
(3)如果是钥匙,就大功告成。

栈是一种仅允许一端进行插入和删除的线性表。
1 栈的操作端称为栈顶,另一端称为栈底。
2 栈的操作称为进站,栈删除称为出栈。
顺序栈示意图
算法图解之递归和栈_第3张图片小结
递归指的是自己调用自己的函数
每个递归函数都有两个条件:基线条件和递归条件
栈有两种操作,压入和弹出
所有函数的调用都进入调用栈
调用栈的时间可能很长,这将占用大量内存。

你可能感兴趣的:(算法图解之递归和栈)