通过递归导致栈溢出

Cause stack overflow through recursion

我一直致力于使用二叉树在 C++ 中实现字符串的优先级队列。

因为我认为递归的简单性很棒。我不会 post 编写代码,因为我今天已经在调试器上花费了很长时间,而且我并不是要有人为我调试,但基本上是在实现递归方法以出队和插入元素并测试正确行为之后对于最多 1000 个随机字符串,我使用了一个测试中心,它试图将 10000 个随机字符串入队,但出现堆栈溢出错误。在此之后,我已经为其他人更改了我的递归方法,这些方法使用指针游标扫描我的树以使用相同的逻辑插入和出队,并且它没有像我预期的那样崩溃(我几乎将它编码为链表)。

那么问题来了,即使我使用引用传递也能通过递归造成栈溢出吗?

这些递归方法是 class 的一部分并定义为私有的。

我希望问题不模糊,但我对 c++ 的经验还不够。 非常感谢您的帮助!

在递归中,您一次又一次地调用您的函数。在每次调用中,您都使用 parameters, stack variables and more 的堆栈内存。所以基本上答案是肯定是,深度递归会导致堆栈溢出。