|
|
스 택(Stack)
|
|
■ 스택의 사용 사례 2 - 중위표기를 후위표기로 변환하는 알고리즘 스택은
중위표기의 수식을 후위표기 수식으로 바꾸는 데에도 이용된다.
변환 알고리즘은 다음과 같다.
|
① 피연산자를 입력하면 즉시 출력한다. ②
연산자는 스택에 집어 넣는다. 단, 스택에
보다 우선순위가 높거나 같은 연산자가 있으면
다 뽑아내 출력하고 집어 넣는다. 여는 괄호도
그대로 스택에 넣는다. ③ 닫는 괄호는
여는 괄호를 만날 때까지 스택안에 있는 것들을
뽑아내어 출력하되, 괄호들은 출력하지 않고
뽑아내기만 한다. ④ 입력이 다 끝난 후에도
스택에 남아있는 것이 있으면 다 뽑아내어
출력한다.
|
위 알고리즘을 a - b * c +
( d * e + f ) / g 에 적용하여 보자.
---> 중위표기를 후위표기로 변환하는 알고리즘
|