Вы можете взять выражение 'infix' и, используя стек, превратить его в выражение 'prefix' или 'postfix', чтобы определить порядок операций (скобки, экспонирование, умножение или деление, сложение или вычитание).
Например, выражение ([5] [*] [5] [+] [2] [*] [2]) будет преобразовано в постфиксное выражение [5] [5] [*] [2] [ 2] [*] [+]. это выражение «postfix» теперь может читаться как «умноженное на пять и пять, умноженное на два и два, а затем сложенное вместе», что сохранит порядок операции.
Еще один способ представить идею «префикса / постфикса» - это использование нескольких стеков. Когда вы встретите число 5, поместите его в основной стек. Когда вы встретите символ умножения, сохраните его во вторичном стеке. Когда вы доберетесь до следующих 5, поместите его в основной стек, затем вытолкните все предметы из вашего второго стека и поместите их в свой основной стек.
После того, как вы определили операторы и операнды в правильном порядке, нужно выкинуть элементы из стека и затем оценить их.
Я помню, как решал эту проблему на моем курсе по информатике 102 в колледже. Вы делаете это для развлечения или просто пытаетесь понять это?