上网搜了很多教程都是教中缀表达式如何转后缀表达式的,他们说的都没有涉及到这张表格,有没有人能帮解释下这种表是什么意思以及我标题的问题呢
这张表是算符间的优先关系表
左边的一行是栈顶运算符(pre_op),上边一的一排是入栈运算符,也是操作数符(c)
要实现中缀表达式直接求值,必须设置两个栈,一个栈存放操作符,另一个栈存放操作数
(1)若读到的是操作数,则进入操作数栈,并读入下一个字符
(2)若读到的是操作符c,则将操作符栈的栈顶元素pre_op与之比较,有下面三种情况:
若pre_op<c,则c入栈,并读入下一个字符;
若pre_op=c,则pre_op出栈,并读入下一个字符;
若pre_op>c,则pre_op出栈,并在操作数栈中退出两个元素,依次得到b和a,然后进行a pre_op b运算,并将运算结果压入操作数栈中