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