이 식은 다음과 같이 변환할 수 있다.
2 * (4 + (2 + (3 + 7)))
결과는 32다. 후위 표기법의 아름다움은 괄호 기호가 필요 없다는 데 있다. 가장 큰 장점은 번역기가 간단한 규칙 몇 개만 지키면 된다는 것이다.
• 다음 항목이 숫자면 스택에 넣는다.
• 다음 항목이 연산자면 스택 위에서 2개의 항목을 추출한 후 연산자를 반영하여 계산한 값을 다시 스택에 넣는다.
이 애플리케이션의 의사 코드를 작성해 보자.
문자열을 입력받는다.
토큰으로 나누어서 리스트에 저장한다.
For 리스트를 순회한다,
If 항목이 연산자면
스택 항목 추출(pop) 후 op2에 저장
스택 항목 추출(pop) 후 op1에 저장
연산 수행 및 수행 결과를 스택에 저장(push)
Else
스택에 실수 값으로 저장(push)
스택 항목 추출 후 값 출력