根据调用方式的不同,它分为直接递归和间接递归。
直接递归
fun_a()
{
…
fun_a()
…
}
间接递归
fun_a()
{
…
fun_b()
…
}
fun_b()
{
…
fun_a()
…
}
比如,在收看电视节目时,如果演播室中也有一台电视机播放的是与当前相同的节目,观众就会发现屏幕里的电视套有一层层的电视画面。这种现象类似于直接递归。
如果把两面镜子面对面摆放,便可从任意一面镜子里看到两面镜子无数个影像,这类似于间接递归。
函数的递归调用可以理解为:通过一系列的自身调用,达到某一终止条件后,在按照调用路线逐步返回。递归是程序设计中强有力的工具,有很多数学函数时递归定义的。