Я понимаю, как написать алгоритм Java без скобок.
- Создайте два стека: стек операндов и стек операторов.
- Когда мы читаем выражение, продолжайте добавлять оператор в одно и операнд в другое.
- Оператор с более низким приоритетом не может быть сохранен в операторе с более высоким приоритетом. В этом случае мы извлекаем этот оператор и применяем к верхним операндам из стека операндов и сохраняем результат на месте.
Но если это включает в себя скобки, такие как [] or {} or ()
. Какова была бы логика для оценки выражения? например
([12*3] + (8/2)) + (5+5)/(4*2)-3+(7-3)