일지
인터프리터...22
niamdank
2020. 12. 2. 12:02
역 폴란드 표기법 프로그램
스택, 우선순위 작성
ReversePolish.h
#pragma once
#include <iostream>
#pragma region 우선순위 설정
int Order(const int ch)
{
switch (ch)
{
case '*':
case '/':
return 3;
case '+':
case '-':
return 2;
case '(':
return 1;
}
return -1;
}
#pragma endregion
#pragma region 스택 처리
#define STACK_SIZE 20
int stack[STACK_SIZE];
int stackHead;
void Push(int n)
{
if (stackHead >= STACK_SIZE)
{
throw std::out_of_range("stack");
}
stack[stackHead++] = n;
}
int Pop()
{
if (stackHead <= 0)
{
throw std::out_of_range("stack");
}
return stack[--stackHead];
}
#pragma endregion
참고문헌