Чтобы построить дерево из выражения, представьте, что вы оцениваете его напрямую, но строите деревья вместо вычисления чисел.(Этот прием работает гораздо больше, чем выражения с постфиксным кодом.)
Алгоритм: Имеет стек для хранения промежуточных значений (которые являются деревьями) и проверяет каждый токен слева направо:
- Если это число, превратите его в листовой узел и поместите в стек.
- Если это оператор, вытолкните два элемента из стека, создайте узел операторас этими потомками и поместите новый узел в стек.
В конце, если выражение сформировано правильно, в стеке должно быть ровно одно дерево, которое является полным выражением в деревеформа.