2장. page95 스택 응용프로그램(수식 분석 기반 사칙연산기)
2010-04-01
|
by jagalet
2769
95페이지를 보시면 중위 표기법->후위 표기법으로 변환하는 알고리즘의 동작과정이있는데
그중 3번
"토큰이 연산자(괄호 포함)일 때, 이 토큰이 스택의 최상위 노드에 저장되어 있는 연산자보다
우선순위가 높으면(왼쪽 괄호는 우선순위가 가장 낮습니다) 스택에 삽입하고, 그렇지 않다
면 결과에 출력한다."
그중 4번
"토큰이 오른쪽 괄호 ) 이면 최상위 노드에 왼쪽 괄호 (가 올 때까지 스택에 제거 연산을
수행하고 ..."
인데 밑의 예제에서는 (117.32 + 83) * 49를 예로 들었죠 그리고 (가 제일먼저오는 연산자이므로
노드의 최상위에 저장됩니다 그리고 )만나면 제거연산이 일어나겠죠 그런데
49 * (117.32 + 83) 이렇게 될경우
(를 만날 시점엔 이미 최상위 노드엔 *가 있습니다 그런데 3번에서 말한대로라면 왼쪽괄호는 우선순위가
제일 낮으므로 결과에 출력한다고 하네요 어떻게 (가 결과로 출력될수가 있죠
(출력안한다고 하더라도 스택에 삽입은 안됩니다 우선순위가 낮으니 말이죠 ㅡ> 책에서 말한대로라면)
아이러니 합니다 정정해주세요 아니면 제가 잘못이해한건가요