数据结构 递归算法 递归算法(Recursion) l本章内容 l递归算法定义 l递归算法举例 l递归算法复杂性的计算 递归算法数据结构 递归算法 递归(Recursion)定义 l直接或间接地调用自身的算法称为递归算法 l直接或间接调用自身的函数称为递归函数 l尾递归是指递归调用的语句在递归函数的最后一 句 l 递归算法的特点: 用于解决一类递归定义的问题 算法易于实现,简单明了 递归算法数据结构 递归算法 递归算法: 1 (n=0,1) n! = n(n-1)! (n1)数据结构 递归算法 函数的递归调用 1. 定义: 在调用一个函数的过程中直接或间接地调用该 函数本身。 l 直接调用 int f(x) int x; int y,z; . z=f(x); return (2*z); f 函数 调用 f函数数据结构 递归算法 int f1(x) int x; int y,z; . z=f2( y); return (2*z); int f2(t) int t; int a,c; . c=f1(a); return (3+c); 间接调用数据结构 递归算法 l 特点 是无终止的递归调用