我正在尝试编写一个程序来评估 C 中的后缀表达式,这是我编写的程序,但我似乎遇到了堆栈下溢错误。
int evaluate(char a[]){
int i = 0, opr1, opr2, res;
int eval;
struct stack infix_stack;
init(&infix_stack); //Initialize stack top to -1.
for(i = 0; (eval=a[i])!='\0'; i++){
if(isdigit(eval)){
push((eval-'0'), &infix_stack);
showStack(&infix_stack);
}
else{
opr2 = pop(&infix_stack);
opr1 = pop(&infix_stack);
switch (a)
{
case '+':return(b+c);break;
case '-':return(b-c);break;
case '*':return(b*c);break;
case '/':return(b/c);break;
default:
printf("Unknown operator\n");
return 0;
break;
}
}
}
return(res = pop(&infix_stack));
}
我收到堆栈下溢错误。