나는 내 자신의 표현식 평가자를 구성하기 위해 주변을 둘러 보았고이 문제에 대해 궁금해합니다.표현식 평가 - StackOverflow 예외 방지
문자열 식을 평가하는 두 가지 방법을 사용했습니다. 한 가지 방법은 이진 트리를 사용합니다.
(약) 42000보다 긴 표현식 문자열을 입력하면 stackoverflow 예외가 발생합니다. 난이 기능 (내 두 번째 구현)
지금 내가 이진 트리 방법을 고수하는 것을 선호와 (심지어 많은 이상 길이) 같은 표현 문자열을 평가하는 경우
그러나 같은 발생하지 않습니다 - 스택 오버 플로우 예외를 해결할 수있는 방법이 있습니까? 즉 재귀에서 스택 오버플로를 피할 수 있습니까? 아니면 스택이 실제로 오버플로 할 때를 찾는 방법이 있습니까? 그렇지 않다면, 실제로는 적어도은 스택 오버 플로우가 발생할 수 있다는 평가를 받기 전에 사용자에게 경고 할 수 있습니까?
당신은 문자열을 다시 폴란드어 표기법 (http://en.wikipedia.org/wiki/Reverse_Polish_notation)으로 다시 구문 분석하는 것을 고려 했습니까? 그러면 훨씬 덜 복잡하게 – MikeT
이 작업을 수행 할 수 있습니다. 'string strPostFix' 매개 변수는 무엇입니까? 그때 당신을 의미합니까? – Sadique
나는이 문제에 대해 궁금해했다.이 경우, 바이너리 트리는 유감스럽게도 이것을 처리하기위한 완전히 잘못된 방법인데, 트리를 분석해야하는 Bodmas 스타일의 수학이다. 그래서 두 번째 해결책은 올바른 것입니다. – MikeT