더북(TheBook)

이 식은 다음과 같이 변환할 수 있다.

2 * (4 + (2 + (3 + 7)))

결과는 32다. 후위 표기법의 아름다움은 괄호 기호가 필요 없다는 데 있다. 가장 큰 장점은 번역기가 간단한 규칙 몇 개만 지키면 된다는 것이다.

다음 항목이 숫자면 스택에 넣는다.

다음 항목이 연산자면 스택 위에서 2개의 항목을 추출한 후 연산자를 반영하여 계산한 값을 다시 스택에 넣는다.

이 애플리케이션의 의사 코드를 작성해 보자.

문자열을 입력받는다.
토큰으로 나누어서 리스트에 저장한다.
For 리스트를 순회한다,
    If 항목이 연산자면
        스택 항목 추출(pop) 후 op2에 저장
        스택 항목 추출(pop) 후 op1에 저장
        연산 수행 및 수행 결과를 스택에 저장(push)
    Else
        스택에 실수 값으로 저장(push)
스택 항목 추출 후 값 출력
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.