中缀表达式转后缀表达式以及计算
中缀表达式转后缀表达式:
1. 如果是操作数,直接入后缀表达式队列
2. 如果是操作符
2.1. 如果操作符栈为空,直接入栈
2.2. 如果操作符栈非空,将当前操作符和操作符栈顶元素优先级比较
2.2.1. 当前元素优先级小于栈顶元素优先级,入栈
2.2.2. 当前元素优先级大于等于栈顶元素优先级,弹出栈顶元素并入后缀表达式队列,
重复此操作直到满足条件 2.2.1. 或者栈空
3. 表达式扫描完毕后如果操作符栈非空,出栈全部元素到后缀表达式队列
后缀表达式的计算:
从左至右扫描后缀表达式队列
1. 如果是操作数,入操作数栈
2. 如果是操作符,从操作数栈中弹出两个元素a、b(a为后出,b为先出),根据相应
的操作符进行运算并将结果压入操作数栈
最后操作数栈中只剩一个元素即为所求

浙公网安备 33010602011771号