是有遞歸函數和存儲棧之間有直接的關係,更多的解釋認爲代碼:遞歸函數和內存堆棧之間的關係是什麼?
public static int triangle(int n) {
System.out.println(「Entering: n = 」 + n);
if (n == 1) {
System.out.println(「Returning 1」);
return 1;
} else {
int temp = n + triangle(n - 1);
System.out.println(「Returning「 + temp);
return temp;
}
}
在這個例子中
,其中將值2,3,4,5存儲,直到函數返回?請注意,它們將在LIFO中返回(LastInFirstOut)是處理內存堆棧的遞歸的一個特例還是它們總是在一起?
如果您指的是調用堆棧,那麼每個調用都會在調用堆棧上創建一個條目,並且每個返回都將刪除條目。 –
你從哪裏得到那些實際上不能在Java中使用的花式引用? –
正如你所看到的'n == 1'是特殊情況,不會遞歸。 –