递归程序设计

 一般定义: 程序调用自身的编程技巧称为递归(recursion)。
 递归做为一种算法设计技巧,是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。

递归过程总是一个过程还未执行完就执行另一个过程(但是执行另一过程前会保存未执行完时候的变量值),如此反复,一直执行到边界条件,执行完余下的过程后,返回上一次未执行完的过程执行(此时使用的是当时的变量),如此反复,直到回到起始位置。

设计递归程序的基本思路:

1、先弄清楚递归的顺序。在递归的实现中,往往需要假设后续的调用已经完成,在此基础之上,才实现递归的逻辑。

2、考虑递归退出的边界条件。

一个简单递归程序的模板

void recurs(argumentlist)
{
    statements1;
    if(未达到边界条件)
    {
        recurs(argumentlist);
    }
    statements2;
}

更深入的理解递归程序可以参见http://www.ibm.com/developerworks/cn/linux/l-recurs.html

原文地址:https://www.cnblogs.com/bewolf/p/4176239.html