본문/내용
#3 소스 및 주석
#include
#include
#include
#define stack_size 50 //stack 크기.
#define post_size 100 //후위식 크기.
class stack
{
private:
char s[stack_size]; //스택 배열.
int top; //배열 top.
public:
stack() {top = -1;}//생성자
~stack() {}//파괴자
void push(char c); //배열에서 push하는 함수.
char pop(); //배열에서 out하는 함수.
};
void stack::push(char c) //push하는 함수.
{
if(top > (stack_size - 1)) cout << `data structure is overflow` << endl;
else
{
top++;
s[top] = c;
}
}
char stack::pop() //out 하는 함수.
{
char result;
if(top == -1)
{
result = NULL;
}
else
{
result = s[top];
top--;
}
return result;
}
class postfix //중위식을 후위식으로 저장하고 결과를 계산하는 클래스
{
private:
char pf[post_size]; //후위식 저장하는 배열.
stack s; //연산자만 들어가는 스택.
int now; //후위식을 저장하는 곳을 가리키는 변수.
public:
postfix() {now = -1;} //생성자
~postfix() {} //파괴자
void inputpost(char *string); // 중위식을 후위식으로 바꾸는 것.
int calcurate(); //후위식 계산하는 것.
vo…
…