我一直在摆弄自己的表情评估器,并遇到了这个我很好奇的问题。
我使用了 2 种评估字符串表达式的方法。一种方法使用二叉树。
当我输入一个长度大于(大约)42000 的表达式字符串时,我得到一个 stackoverflow 异常。
但是,如果我使用此函数(我的第二个实现)评估相同的表达式字符串(甚至更长的长度),则不会发生同样的情况
现在我更愿意坚持二叉树方法 - 有没有办法可以修复堆栈溢出异常,即我可以在递归中避免堆栈溢出,或者有没有办法找到堆栈实际溢出的时间?如果不是,我怎么能至少在表达式开始被评估之前警告用户可能发生堆栈溢出?