нотацию. парсю входную строку, делю на операнды и операторы, под первые 1 deque (как stack, <Double>) под вторые - второй отдельный( как <Character>). Собственно вопрос: чем объявить выходную строку, когда буду выталкивать из 1го deque и второго? Стринг не хочу, там опять всё смешается, потом опять искать/парсить double операнды, а их уже есть в первом отдельном deque. Или другой вариант, т.к. может я пошёл не тем путём
слишком усложняешь. Когда операцию встречаешь, применяешь ее к двум верхним значениям со стека, и все, итоговое заносишь снова вверх.
спасибо, пошел осмыслять
Тебе нужно наружу rpn передать, или можно результат вычисления?
Не, это всё еще обработчик внутри. То есть я из 4.2 + 2 * 3 / 3 получил условно {4.2, 2, 3} и {+, *, /}. Теперь я хочу это вытолкнуть в одно, но первое это double, а второе Character. Просто чтобы уже с вытолкнутым всем можно было просто посчитать (ведь там уже есть числа, чтобы их снова из строки не выдирать). Наверное, можно через Map<Double, Character>, но я не знаю как ним работать, опыта нет, т.е. как это последовательно key, value, key, value и т.д. использовать для "посчитания".
Какой мап, зачем?
Обсуждают сегодня