簡體   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