Я понимаю, как писать java-алгоритм без скобок.Как написать алгоритм в java для вычисления арифметического выражения с помощью скобок
- Создайте два стека: стек операнда и стек оператора.
- Когда мы читаем выражение, продолжайте добавлять оператор в один и операнд в другой.
- Оператор с более низким приоритетом не может быть сохранен на операторе с более высоким приоритетом. В этом случае мы выставим этот оператор и применим к верхним операндам из стека Операнда и сохраним результат .
Но если оно содержит скобки, такие как [] or {} or()
. Какова была бы логика для оценки выражения? например
([12*3] + (8/2)) + (5+5)/(4*2)-3+(7-3)
Вы еще что-нибудь пробовали? – hexafraction
Да ... без скобки я пробовал. С логикой скобок мне нужно понять ... Прочитал пару старых блогов, но не мог понять, как это работает. – Suvasis
«Алгоритм подробно» и «Подробный пример» в [Википедии] (http://en.wikipedia.org/wiki/Shunting-yard_algorithm) описывает, как обрабатываются круглые скобки. – usr2564301