arseniiv, Pavia, для того, чтобы сразу строить дерево мне нужно, чтобы первый оператор который я выну из стека имел приобретет меньше, чем у всех остальных, но я могу вынуть из стека только тот оператор, приоритет которого меньше приоритета предыдущих (об остальных я ничего не знаю т.к. до них не дошел), получается мне все равно нужна еще очередь или стек(в которых будет польская запись). Если я сразу начину строить дерево, то придется строить его не от вершины, а от листа.
Какая разница, как строить дерево? У вас будет стек, доставшийся в наследство от алгоритма вычисления обратной польской записи. Храните в этом стеке поддеревья (а не числа, как при «обычном» вычислении). Вместо вычисления суммы, когда приходит
+, «вычисляйте» соответствующее дерево.
По-моему, обобщение совершенно прозрачное.
