表达式求值 OperandTypeEvaluateExpression(){ //设OPTR和OPND分别为运算符栈和运算数栈//OP为运算符集合 InitStack(OPTR);Push(OPTR#); initStack(OPND);c=getchar(); while(c!=#||GetTop(OPTR)!=#){ if(!In(cOP)){ Push((OPNDc);c=getchar(); }//不是运算符则进栈 else switch(precede(GetTop(OPTR)c){ case<://栈顶元素优先权低 Push(OPTRc);c=getchar(); break; case=://脱括号并接收下一字符 Pop(OPTRx);c=getchar(); break; case>://退栈并将运算结果入栈 Pop(OPTRtheta); Pop(OPNDb);Pop(OPNDa); Push(OPNDOperate(athetab)); break; }//switch }//while returnGetTop(OPND); }//EvaluateExpression 返回《数据结构》考研复习精编 [] [] [] [] [] [] [] [] [] |