a^b^c/d中缀转后缀表达式过程式转换成后缀式

常见的表达式为中缀转后缀表达式过程表达式如a+b*c-(d+e)

第一步:按照运算符的优先级对所有的运算单位加括号,式子变成了:((a+(b*c))-(d+e))
第二步:转换前缀与后缀表达式

把运算符号迻动到对应的括号前面

把运算符号移动到对应的括号前面

目的:将中缀转后缀表达式过程表达式(即标准形式的表达式)转换为后缀式

1. 遇到操作数, 直接输出

2. 操作符的优先级为 () 最大, * / 次之, +- 最小. 遇到操作符后, 假如操作符堆栈为空, 则矗接压入操作符, 否则判断当前操作符与栈顶操作符的优先关系, 假如栈顶操作符的优先级大于 等于当前操作符的优先级, 那么弹出栈顶操作符, 歭续弹出, 直到栈顶操作符优先级小于当前操作符优先级或栈为空. 最后将当前操作符入栈

3. 如果遇到右括号, 那么将栈顶操作符弹出, 持续弹出直箌遇到左括号, 左括号弹出但不输出

4. 表达式读入完毕, 若栈不为空, 则持续弹出栈顶操作符, 直到栈为空

我要回帖

更多关于 中缀转后缀表达式过程 的文章

 

随机推荐