본문내용
{
char symbol;
precedence token;
int n=0,i=0,j=0;
int top=0;
stack[0]=eos;
for(token=get_token(&symbol,&n);token!=eos;token=get_token(&symbol,&n)) {
if(token==cha)
expr2[j++]=symbol;
else if(token==operand)
expr2[j++]=symbol;
else if(token==rparen) {
while(stack[top]!=lparen)
expr2[j++]=print_token(del(&top));
del(&top);
}
else {
while(isp[stack[top]]>=icp[token])
expr2[j++]=print_token(del(&top));
add(&top,token);
}
}
while((token=del(&top))!=eos)
expr2[j++]=print_token(token);
for(i=0;i<=j;i++) { // eval() 계산을 위해 임시의 배열 expr2 에서 expr 로 다시 복사
printf(\"%c\",expr2[i]);
expr[i]=expr2[i];
}
printf(\"\\n\");
}
int main()
{
printf(\"infix -> postfix program\\n\\n\");
printf(\"Input infix : \");
scanf(\"%s\",expr);
printf(\"infix -> postfix = \");
postfix();
printf(\"\\npostfix expr : %d\\n\",eval());
return 0;
}
char symbol;
precedence token;
int n=0,i=0,j=0;
int top=0;
stack[0]=eos;
for(token=get_token(&symbol,&n);token!=eos;token=get_token(&symbol,&n)) {
if(token==cha)
expr2[j++]=symbol;
else if(token==operand)
expr2[j++]=symbol;
else if(token==rparen) {
while(stack[top]!=lparen)
expr2[j++]=print_token(del(&top));
del(&top);
}
else {
while(isp[stack[top]]>=icp[token])
expr2[j++]=print_token(del(&top));
add(&top,token);
}
}
while((token=del(&top))!=eos)
expr2[j++]=print_token(token);
for(i=0;i<=j;i++) { // eval() 계산을 위해 임시의 배열 expr2 에서 expr 로 다시 복사
printf(\"%c\",expr2[i]);
expr[i]=expr2[i];
}
printf(\"\\n\");
}
int main()
{
printf(\"infix -> postfix program\\n\\n\");
printf(\"Input infix : \");
scanf(\"%s\",expr);
printf(\"infix -> postfix = \");
postfix();
printf(\"\\npostfix expr : %d\\n\",eval());
return 0;
}
소개글