У меня есть двоичный конструктор дерева, который будет принимать префикс обозначения в строке и в конечном итоге распечатать что-то вроде этого:Вычисление значения бинарного дерева выражений
|-- *
|-- 2
|-- +
|-- 4
|-- +
|-- 6
|-- 7
Приставка обозначения этого дерева является: (* 2 (+ 4 (+ 6 7))) Значение должно быть: 2 * 17 = 34. Я понимаю, что стеки используются при вычислении этих деревьев, но я не уверен, как это сделать.
Идея, что у меня есть, состоит в том, что есть два стека. Один для операторов и один для операндов. Когда вводятся два операнда, последний оператор вынимается, а новый операнд помещается туда?
Кроме того, мне нужно взять дерево выше и вернуть постфиксную, инфиксную и префиксную нотацию. Каждый раз, когда я пытаюсь это сделать, он выплескивает префиксную нотацию.