자료구조
[ch 06-4] 계산기 프로그램 구현_3(후위표기법 수식 계산 개념)
얗마
2016. 4. 6. 22:31
[구현 원칙]
- 피연산자는 무조건 스택으로 옮김
- 수식 조회 시 연산자를 만나면 스택에서 2개의 피연산자를 꺼내어 계산 처리
- 계산결과는 다시 스택에 저장
[계산 시 중요 포인트]
- 스택에서 먼저 꺼낸 피연산자가 두 번째 피연산자가 됨(오른쪽)
- 나중에 꺼낸 피연산자가 첫 번째 피연산자가 됨(왼쪽)
[후위표기법 계산 과정]
- 중위표기법에서 후위표기법으로 변환된 상태
- 변환된 수식에서 맨 왼쪽부터 하나씩 처리
- 피연산자는 무조건 스택에 저장
- 피연산자는 스택에 저장
- 피연산자는 스택에 저장
- 연산자는 계산 수식으로 이동
- 연산자가 조회되면 스택에서 2개의 피연산자를 꺼냄
- 처음 꺼낸 피연산자는 계산 수식의 연산자 '오른쪽'으로 이동
- 다음 꺼낸 피연산자는 계산 수식의 연산자 '왼쪽'으로 이동
- 계산 처리된 값은 다시 스택에 저장
- 다시 변환된 수식에서 조회 시작
- 연산자는 계산 수식으로 이동
- 연산자가 조회되면 스택에서 2개의 피연산자를 꺼냄
- 처음 꺼낸 피연산자는 계산 수식의 연산자 '오른쪽'으로 이동
- 다음 꺼낸 피연산자는 계산 수식의 연산자 '왼쪽'으로 이동
- 계산 처리된 값은 다시 스택에 저장
- 변환된 수식에 더 이상 조회할 데이터가 없을 경우 스택에 남은 데이터를 꺼내면서 종료
■ 결과
5 6 3 / - → 5 - 6 / 3 = 5 - 2 = 3