簡體   English   中英

通過遞歸導致堆棧溢出

[英]Cause stack overflow through recursion

我一直在使用二叉樹在c ++中實現字符串的優先級隊列。

我認為遞歸的簡單性很好。 我不會發布代碼,因為我已經在調試器上使用了很長時間,並且我不要求有人為我調試,但是基本上是在實現遞歸方法以出隊和插入元素並測試多達1000個正確行為之后隨機字符串我曾經使用過一個測試中心,嘗試加入10000個隨機字符串,但是我有一個堆棧溢出錯誤。 此后,我為其他人更改了遞歸方法,這些人使用指針光標掃描我的樹以使用相同的邏輯進行插入和出隊,並且沒有像我期望的那樣崩潰(我已將其編碼為鏈接列表)。

然后的問題是 ,即使使用引用傳遞,也可以通過遞歸導致堆棧溢出嗎?

這些遞歸方法是類的一部分,並定義為私有。

我希望這個問題不是很模糊,但是我對C ++的經驗還不夠。 非常感謝你的幫助!

在遞歸中,您一次又一次地調用函數。 在每次調用時,都使用堆棧存儲器存儲參數,堆棧變量等 因此,基本上答案是肯定的 ,深度遞歸會導致堆棧溢出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM