Я занимался поиском собственного оценщика выражений и приземлился на эту проблему, мне интересно.Оценка экспрессии - исключение исключения StackOverflow
Я использовал 2 способа оценки строкового выражения. Один метод использует двоичное дерево.
Когда я ввожу строку выражения длиной более (приблизительно) 42000, я получаю исключение stackoverflow.
Однако то же самое не произойдет, если я оценивать ту же выражение строку (даже в много большей длины) с этой функцией (моя вторая реализация)
Теперь я предпочел бы придерживаться метода двоичного дерева - есть способ, которым я могу исправить исключение переполнения стека, т.е. я могу избежать переполнения стека в рекурсии или есть способ найти, когда стек будет фактически переполняться? Если нет, то как я могу на самом деле как минимум предупредить пользователя, прежде чем даже выражение начнет оцениваться, что может произойти переполнение стека?
Вы считаете, что перерисовываете свою строку, чтобы отменить нотную пометку (http://en.wikipedia.org/wiki/Reverse_Polish_notation), это позволит вам сделать это с гораздо меньшей степенью полноты. – MikeT
Что делает параметр 'string strPostFix' значит для вас тогда? – Sadique
Я действительно задавался вопросом об этом, и в этом случае ваше двоичное дерево, к сожалению, является совершенно неправильным методом для его обработки, его математикой стиля Bodmas, которая нуждается в анализируемом дереве. так что ваше второе решение является правильным – MikeT