1 算法思想
所包含的运算符有‘+’,‘-’,‘*’,‘/’,‘(’,‘)’。
(1)建立两个栈,一个用来存储操作数,另一个用来存储运算符,开始时在运算符栈中先压入‘/0’,一个表达式的结束符。
(2)然后从左至右依次读取表达式中的各个符号(操作数或者运算符);
(3)如果读到的是操作数直接存入操作数栈;
(4)如果读到的是运算符,则作进一步判断:
若读到的是‘/0’结束符,而且此时运算符栈的栈顶元素也是‘/0’结束符,则运算结束,输出操作数栈中的元素即为最后结果。
若读到的是‘(’或者读到的运算符的优先级比目前的运算符栈中的栈顶元素的优先级高,则将运算符直接存入运算符栈,继续读表达式中的下一个符号,重复步骤(3)和(4);
若读到的是‘)’,而且此时运算符栈的栈顶元素是‘(