电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

第二部分 栈、队列和数组[5]


发布日期:2022/5/6
 

表达式求值

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

返回《数据结构》考研复习精编

[] [] [] [] [] [] [] [] []

上一篇:第二部分 栈、队列和数组[6]

下一篇:第二部分 栈、队列和数组[4]