算法图解学习(三)

递归:

递归简单说就是自己调用自己。

一般来说,递归需要有边界条件,当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

通常在解决问题时,使用循环可能性能更高,但如果使用递归,程序会更容易理解。

递归通常很耗内存,这也是有时使用循环也不用递归的原因。

关于递归经典的例子就是斐波那契数

具体的python代码如下:

def fac(n):
    if n<=1:
        return n
    else:
        return fac(n-1) + fac(n-2)

for i in range(6):
    print(fac(i),end=' ')
#OUTPUT:0 1 1 2 3 5 

栈:

基本特点分为两类: 
  1:先进后出,后入先出(类似于洗完盘子堆起来的盘子,行人坐电梯)
  2:除头尾节点之外,每个元素都有一个前驱,一个后继
栈有两种基本操作:压栈(PUSH),弹栈(POP)

队列:

队列是先进先出的线性表(类似于饭堂打饭,商场里购物付款),通常用数组和链表来实现
队列只允许从后端进行插入操作,在前端进行删除操作

你可能感兴趣的:(算法图解学习(三))