메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 알고리즘

뇌를 자극하는 알고리즘 질의응답 게시판입니다.

2장. page95 스택 응용프로그램(수식 분석 기반 사칙연산기)

2010-04-01

|

by jagalet

2769

95페이지를 보시면 중위  표기법->후위 표기법으로 변환하는 알고리즘의 동작과정이있는데

그중 3번

"토큰이 연산자(괄호 포함)일 때, 이 토큰이 스택의 최상위 노드에 저장되어 있는 연산자보다

우선순위가 높으면(왼쪽 괄호는 우선순위가 가장 낮습니다) 스택에 삽입하고, 그렇지 않다

면 결과에 출력한다."

그중 4번

"토큰이 오른쪽 괄호 ) 이면 최상위 노드에 왼쪽 괄호 (가 올 때까지 스택에 제거 연산을
수행하고 ..."

인데 밑의 예제에서는 (117.32 + 83) * 49를 예로 들었죠 그리고 (가 제일먼저오는 연산자이므로

노드의 최상위에 저장됩니다 그리고 )만나면 제거연산이 일어나겠죠 그런데

49 * (117.32 + 83) 이렇게 될경우

(를 만날 시점엔 이미 최상위 노드엔 *가 있습니다 그런데 3번에서 말한대로라면 왼쪽괄호는 우선순위가

제일 낮으므로 결과에 출력한다고 하네요 어떻게 (가 결과로 출력될수가 있죠

(출력안한다고 하더라도 스택에 삽입은 안됩니다 우선순위가 낮으니 말이죠 ㅡ> 책에서 말한대로라면)

아이러니 합니다 정정해주세요 아니면 제가 잘못이해한건가요
댓글 입력