《数据结构C语言版》P52-54
算法思想
用两个栈(列表实现),OPTR存放运算符,OPND存放数值。
OPTR栈底预先放入一个‘#’(结束符),表达式的最后一个结束符‘#’。
依次读表达式中的每个字符,若是操作数则进OPND栈,若是运算符,则和OPTR栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕(使用到OPTR栈不为空的条件)。
python3
def precede(op1, op2): # 比较读入的当前运算符和栈顶的运算符的优先级
array = [
#'+' '-' '*' '/' '(' ')' '#'
['>', '>', '<', '<', '<', '>', '>'], #'+'
['>', '>', '<', '<', '<', '>', '>'], #'-'
['>', '>', '>', '>', '<', '>', '>'], #'*'
['>', '