許多語言(如python)都有一個最大遞歸深度。我意識到你可以改變這個深度,或者完全不用寫遞歸函數,但是如果你寫了一個遞歸函數,並且你達到了最大遞歸深度,你將如何做好準備和處理呢?如何處理最大遞歸深度?
4
A
回答
1
你真的可以做的唯一的事情就是讓用戶知道出了什麼問題,並且任務不能按設計執行。
3
有在被增加爲每個調用函數簽名的參數。當它接近最大遞歸深度時,在達到之前執行。
這裏是紅寶石十歲上下的僞代碼示例:
def my_recursive_function(current_depth)
# do stuff
if current_depth >= MAX_RECURSION_LIMIT
# throw exception, or output helpful information or return default value
else
my_recursive_function(current_depth+1)
end
end
1
我認爲最好的方法是避免編寫在到達最大深度的任何機會遞歸代碼。總是有一種方法可以將遞歸算法重新編寫爲迭代算法,所以只需要這樣做。
如果你在編寫遞歸代碼,可達到最大極限,死心塌地,然後寫一個備份迭代版本,趕了遞歸超過異常並切換到迭代之一。
相關問題
- 1. 處理最大遞歸深度超過
- 2. Python:最大遞歸深度
- 3. 瓶最大遞歸深度
- 4. XSLT處理遞歸深度
- 5. 最大遞歸深度?如何預防?
- 6. Tkinter - RuntimeError:超過最大遞歸深度
- 7. 超過Django最大遞歸深度
- 8. getattr的最大遞歸深度誤差
- 9. Django教程最大深度遞歸
- 10. 最大遞歸深度錯誤?
- 11. QuickSort - RuntimeError:超過最大遞歸深度
- 12. Django RuntimeError:超過最大遞歸深度
- 13. 防止超過最大遞歸深度
- 14. Python:最大遞歸深度錯誤
- 15. 超過最大遞歸深度 - Django
- 16. Python:超過最大遞歸深度
- 17. 錯誤:最大遞歸深度比較
- 18. runtimeerror:最大遞歸深度超過python
- 19. Beautifulsoup,最大遞歸深度達到
- 20. RuntimeError:最大遞歸深度超過
- 21. py2exe - 最大遞歸深度錯誤
- 22. 深度優先搜索中的Python「RuntimeError:最大遞歸深度」
- 23. 遞歸錯誤:超過最大遞歸深度
- 24. 遞歸錯誤:最大遞歸深度超過
- 25. Python的遞歸函數錯誤:「最大遞歸深度超過」
- 26. 如何設置R中的最大遞歸深度?
- 27. 如何增加Python中的最大遞歸深度?
- 28. 最大遞歸深度超過單級如果聲明
- 29. 最大遞歸深度誤差,某種程度上與列表理解符號
- 30. 在遞歸處理中深入鑽取