递归的概念:在C++ primer plus书中介绍了C++函数的一种特点——可以调用自己,这种功能被称为递归。而递归函数即自调用函数,在函数内部直接的或者间接地调用自己。
递归的用途:阶乘、斐波那契数列、汉诺塔、杨辉三角的存取、字符串回文判断、字符串全排列、二分查找、树的深度求解
如果递归函数调用自己,则被调用的函数也将调用自己,这将无线循环下去,除非在代码中包含终止调用链的内容。我们通常的方法就是将递归调用放在if语句中。
eg:
void recurs(argumentlist)
{
statements1
if (test)
recurs(arguments)
statements2
}
test最终将为false,调用链将断开。
只要if语句为ture,每个recurs()调用都将执行statements1,然后再调用recurs(),而不会执行statements2。当if语句为false时,当前调用将执行st