#define maxn 110;
int val[maxn],top;
int op[maxn],otop;
void insert(int b)
whilelop &oplotop-1]=3)b=!b; -otop;
val[vtop++]=b; .
void calc(void)
int b=val–vtop];int a=val–vtop];int opr=op[–otop];int c=(a&b);
ifopr-=1)c=(alb);
insert(e);
int main(void) {
while((c=getchar0)!=EOF)
vtop=otop=0;
if(c==(){
op[otop++]=0; }
else if(C==)) {
while(otop&&op[otop-1]!=0)calc0;
inser(eal–vtop]);
else ife-=-"){
op[otop++]=3; }
else if(c-=’&’)
while(otop&&op[otop-1]>=2)calc();
op[otop++]=2; }
else if(c==")
while(otop&op[otop-1]>=1)
op[otop++]=1;}else if(c== 'VllF’) {insert(c*V"?1:0); }
whiel(cetchar();=*n’&c!=EOF);while(otop)
calc);
printf(“Expression %d: %In”++too.(allO1]?“V”:F));
return 0;
当输入为(F&FIVI!V&!F&(FIF&V)时,则程序的输出结果是:
Expression 1: V
请问这个栈的答案是可以一眼看出来的还是一步步算,没太完全理解。