2.1.1 递归函数
计算斐波那契数列 a(n)=a(n-1)+a(n-2)(n>1),其中a0=0,a1=1
int fib(int n){
if(n <= 1) return n;
return fib(n-1) + fib(n-2);
}
递归实现方便程序的编写,但占用大量空间,存在重复计算。
如果计算后,用数列储存结构,可优化空间。
int memo[maxn];
int fib(int n){
if(n <= 1) return n;
if(memo[n] != 0) return memo[n];
return fib(n-1)+fib(n-2);
}
2.1.2 栈
LIFO:先进后出
操作:push和pop
实现:数组,链表,STL-stack(push,pop,top)
2.1.3 队列
FIFO:先进先出
操作:push和pop
实现:数组,链表,STL-queue(push,pop,front)