Если у вас есть исходный текст (строка / строки), который вы хотите преобразовать из RPN (постфиксная нотация) в «нормальную нотацию» (инфикс), это, безусловно, возможно (и, вероятно, не так уж сложно).
RPN был разработан для стековых машин, так как способ представления операции («2 + 3» -> «2 3 +») соответствовал тому, как она фактически выполнялась на оборудовании (вставьте «2» в стек, вставьте «3» в стек, вытолкните два верхних аргумента из стека и добавьте их, верните обратно в стек).
По сути, вы хотите создать синтаксическое дерево из вашего RPN, сделав 2 выражения, которые вы хотите оперировать на «конечных узлах», и саму операцию, которая следует после этого, «родительским узлом». Вероятно, это будет сделано путем рекурсивного просмотра вашей входной строки (возможно, вы захотите убедиться, что подвыражения правильно заключены в скобки для дополнительной ясности, если они еще не сделаны).
Когда у вас есть это синтаксическое дерево, вы можете выводить префиксную, инфиксную или постфиксную нотацию, просто выполняя предварительный, пост-порядок или упорядоченный обход этого дерева (опять же, если необходимо, заключите в скобки вывод для ясности ).
Более подробную информацию можно найти здесь .