這個問題令我困惑。我有一棵樹,我想寫一個方法來計算某個節點的孫子的數量(但不是偉大的子孫)。我不能使用循環,只能遞歸。所以問題是我將如何實施我的基本情況?我如何讓它停止?我想不出一種這樣做的方式......經過一定量的步驟後停止遞歸
1
A
回答
6
有一個depth
參數的遞歸方法,並將它之前加1自通話,即:
void myMethod(int depth) {
/* ... Do something ... */
if (depth < maxDepth) {
child.myMethod(depth + 1);
}
}
+0
請參閱編輯.. – Snowman 2010-11-06 21:07:47
+2
maxDepth從哪裏來?深度達到0時,深度剩餘減少與每次調用減少不是更好嗎,停止。 – 2010-11-08 11:53:55
+0
@彼得:是的,會的! – 2010-11-08 12:45:29
2
將「遞歸深度」參數傳遞給遞歸函數,每次調用該函數時遞增一次。
當你達到你的限制,你停止遞歸。
相關問題
- 1. 試圖通過遞歸計算步驟?
- 2. 打印遞歸步驟
- 3. 如何在達到一定深度後從遞歸中停止遞歸函數?
- 4. 遞歸不停止
- 5. 如何在經過一定次數的迭代後停止setInterval()
- 6. 短時間後遞歸循環停止
- 7. Python和BS4 - 經過一定時間後停止閱讀
- 8. 停止遞歸一旦條件滿足
- 9. 停止遞歸函數
- 10. jquery:停止無限遞歸?
- 11. 序言遞歸停止
- 12. 在Prolog中停止遞歸?
- 13. PHP遞歸沒有停止
- 14. 不能停止遞歸java
- 15. 停止遞歸算法
- 16. r停止遞歸,但它不是一個無限遞歸
- 17. mssql導出停止在驗證步驟
- 18. PHP遞歸經過陣列
- 19. 如何在一段時間後停止遞歸C
- 20. 遞歸函數在第一個循環後停止
- 21. 解決具有多個遞歸步驟的遞推方程
- 22. 通過在java中的目錄遞歸,我想跳過頂層的步驟
- 23. 經過一次正確的迭代後停止內循環
- 24. Colorbox在經過一年的無瑕操作後停止工作(?)
- 25. ISampleGrabberFilter一次一個步驟的步驟
- 26. CucumberJs跳過步驟定義 - 也許回調步驟定義中的最後一個參數?
- 27. 如何停止Page.DataBind()的遞歸調用?
- 28. 循環的遞歸CTE停止條件
- 29. 我的BFS遞歸調用不停止
- 30. 的Javascript遞歸沒有停止
有趣的事實:一些語言只有遞歸;沒有循環。 – nmichaels 2010-11-06 21:04:09
真的,哪些? – Snowman 2010-11-06 21:06:43
@fprime:關於你的更新,我看不出這是如何工作的。你不會將任何東西傳遞給'countGrandChildren()'的遞歸調用。 – 2010-11-06 21:10:13