Я знаю, что это старое подчинение, но здесь идет
Это правильная форма. Вы можете легко проверить его, итерации через постфикс самостоятельно и преобразования его обратно в инфикс, например, начиная с пустого стека.
A
- первый элемент в массиве, и это число, поэтому нажмите его в стек. То же самое справедливо и для B and
C . Therefore your stack is now
A, B, C`.
Следующий токен - это оператор (*
), и он принимает два операнда. Поэтому вытащите верхние два операнда из стека, или B
и C
. Объедините два, разделенных оператором, и вставьте их в стек. Чтобы упростить алгоритм, просто поместите круглые скобки вокруг всего. Ваш стек теперь A,(B*C)
.
Ваш следующий токен - другой бинарный оператор (+
). Повторите тот же процесс, что и выше, и вы получите свой стек как (A+(B*C))
.
Повторите процесс для остальной части его, и вы получите выражение, эквивалентное (A+B*C)/(D-E*F)