자료구조 후위 표기식 스택 관련

자료구조 후위 표기식 스택 관련

작성일 2023.05.01댓글 1건
    게시물 수정 , 삭제는 로그인 필요

a*-b+c를 후위 표기식으로 바꿀때 a를 output 하고 *를 push하고 -를 또 push하려면 연산자의 우선순위에 의해서 *가 pop이 되잖아요 그리고 b를 output하고 +를 push하면서 -와 연산자 우선순위가 같으니 -를 pop해주고 마지막으로 +를 pop해줘서 a*b-c+가 맞나요? 틀리면 고쳐주시고 설명부탁드립니다 ㅠㅠ 그리고 후위연산식을 스택을 사용해서 계산하는 것도 만들어주시면 감사하겠습니다 !!!


#자료구조 후위 표기법 계산기 #자료구조 후위표기법 #자료구조 후위표기법 계산 #자료구조 후위표기식 #자료구조 후위연산 #자료구조 중위표기법 후위표기법

profile_image 익명 작성일 -

네, 맞습니다. 후위 표기식으로 변환하면 a b * c - +가 됩니다. 후위 표기식을 스택을 사용해서 계산하는 방법은 다음과 같습니다:

1. 피연산자를 만나면 스택에 push합니다.

2. 연산자를 만나면 스택에서 두 개의 피연산자를 pop하여 연산한 후 결과를 다시 스택에 push합니다.

3. 수식이 끝나면 스택에서 최종 결과를 pop합니다.

예를 들어 a b * c - +를 계산한다면 다음과 같은 과정을 거칩니다:

1. a를 스택에 push합니다.

2. b를 스택에 push합니다.

3. *를 만나면 스택에서 b와 a를 pop하여 a * b를 계산한 후 결과를 다시 스택에 push합니다.

4. c를 스택에 push합니다.

5. -를 만나면 스택에서 c와 a * b를 pop하여 (a * b) - c를 계산한 후 결과를 다시 스택에 push합니다.

6. +를 만나면 스택에서 (a * b) - c와 a * b를 pop하여 (a * b) + ((a * b) - c)를 계산한 후 결과를 다시 스택에 push합니다.

7. 수식이 끝났으므로 최종 결과인 (a * b) + ((a * b) - c)를 pop하여 반환합니다.

자료구조 후위표기식 구현

... printf("후위표기식 : %s\n", data); result = eval(data); printf... (stderr,"스택포화에러\n"); return; } else s->stack[++(s->top)]=item; } element...

후위 표기식 계산하는 문제입니다...

... 피연산자이면 스택에 저장하고 만약 연산자를 만나게 되면 가장 마지막으로 스택에 저장된 피연산자 두 개를 꺼내서 연산을 진행하고 다시 스택에 넣는...

자료구조 후위표기법

... //스택 초기화 함수 void init(StackType * s) { s->top = -1; } //공백상태... printf ("후위표기식은 34*1-5724*++/ \n"); result = eval("34*1-5724...