繁体   English   中英

这是递归的还是不递归的?

[英]Is this recursive or not?

我在 class 中有 2 种方法,两种方法的目的相同,但一种是递归的,另一种不是。

我想知道以下称为nonRecursivePrintFancyTree()的方法是否是递归的,它不会回调自身。:

PrintFancyTree() {
    String outputString= "";
    outputString += printFancyTree( 2*index, _prefix);
    outputString += printFancyTree( 2*index + 1, _prefix);
}

所以我知道PrintFancyTree是递归的,它会回调自己,现在这里是“非递归”的:

nonRecursivePrintFancyTree() {
    String outputString= "";
    outputString += this.printFancyTree( 2*index, _prefix);
    outputString += this.printFancyTree( 2*index + 1, _prefix);
}

它是非递归的吗? 它从 class 调用另一个方法。

它不是递归的,因为它不调用自身(或调用原始方法的其他方法),它确实调用递归方法的事实不会使原始方法递归。 这与抽象有关,“printFancyTree”的工作方式与“nonRecursivePrintFancyTree”无关,重要的是“printFancyTree”的作用。

您 printFancyTree 的定义没有 arguments。 这就是它调用其他方法的原因。

用参数和调用重新定义你的方法,它会变成递归的。

调用自身的方法称为递归方法。 方法 nonRecursivePrintFancyTree 不会调用自身,因此它不是递归方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM