递归:
递归简单说就是自己调用自己。
一般来说,递归需要有边界条件,当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
通常在解决问题时,使用循环可能性能更高,但如果使用递归,程序会更容易理解。
递归通常很耗内存,这也是有时使用循环也不用递归的原因。
关于递归经典的例子就是斐波那契数
具体的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)
队列:
队列是先进先出的线性表(类似于饭堂打饭,商场里购物付款),通常用数组和链表来实现
队列只允许从后端进行插入操作,在前端进行删除操作