계산기_Stack

rami·2024년 3월 20일
0

Today I Learned

목록 보기
33/34

후위 연산

ex. 3x(2+5)x4
1. 괄호 치기 -> ((3x(2+5))x4)
2. ')' 오른쪽으로 연산자 이동 -> 3x25+x4 -> 325+x -> 325+x4x

스택에 담기

ex. 6+(3-2)x4
1. postfix : 후위연산된 식 표시
2. opStack : 연산자 담는 스택
3. calStack : 계산을 위한 피연산자 담는 스택

알고리즘

calStack 채울때,
postfix에서 피연산자만 담는다.

if 토큰(토큰은 낱개 하나 의미함)이 피연산자면 push
if 토큰이 연산자면 (+-*/)
피연산자 두개 pop해서 계산해서 스택에 다시 push
a=stack.pop()
b=stack.pop()
stack.push(a token b)

profile
앞으로 나아가는 사람

0개의 댓글