[英]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.