应用这种递归

时间:2013-11-25 14:40:40

标签: recursion

我无法弄清楚我们在一个问题中使用这个结构进行递归的位置以及这个叫什么

int func001(int x){

    if(x>=1) func003(x-1);

}
int func003(int y){

    if(y>=2) func001(y-1);

}

1 个答案:

答案 0 :(得分:1)

这种递归称为mutual recursion。您的代码示例没有很好地定义,因此无法确定此处的内容。

然而,相互递归函数的最常见用法是编码有限状态自动机:每个状态由函数表示,转换由对其他函数的调用表示。例如,lex和类似程序生成的词法分析器就是这种情况,但在手写的词法分析器中也经常出现这种情况。