我一直在摆弄我自己的表达式求值器,并在这个我很好奇的问题上登陆。表达式评估 - 避免StackOverflow异常
我已经使用了2种评估字符串表达式的方法。一种方法使用二叉树。
当我输入长度大于(大约)42000的表达式字符串时,我得到一个stackoverflow异常。
但是同样的,如果我使用此功能(我的第二个实现)
现在我宁愿坚持二叉树方法评估相同的表达式字符串(甚至多更长的长度)不会发生 - 有没有办法我可以修复堆栈溢出异常,即我可以避免我的堆栈溢出递归还是有办法找到何时堆栈实际上溢出?如果不是,即使表达式开始评估堆栈溢出可能发生之前,我怎么才能实际上至少警告用户?
你有没有考虑重新分析你的字符串以反转波兰表示法(http://en.wikipedia.org/wiki/Reverse_Polish_notation),这将允许你用少得多的复杂度来做到这一点 – MikeT
什么参数'字符串strPostFix'对你来说意味着什么? – Sadique
我确实想知道,在这种情况下,你的二叉树不幸是完全错误的方法来处理这个,它的Bodmas风格的数学需要树分析。所以你的第二个解决方案是正确的一个 – MikeT