我解决不了这个表情从后缀到中缀。 请帮我详细地了解
5 x y - / x y + 3 ^ 7 / +
我解决不了这个表情从后缀到中缀。 请帮我详细地了解
5 x y - / x y + 3 ^ 7 / +
后缀以缀:
5 x y - / x y + 3 ^ 7 / +
步
5 XY - /
A)5xy- / = 5(XY)/ =(5 /(XY))
XY +
B)XY + =(X + Y)
(X + Y)3 ^
B.1)(X + Y)3 ^ =((X + Y)^ 3)
现在,(5 /(XY))((X + Y)^ 3)7 / +
=(5 /(XY))(((X + Y)^ 3)/ 7)+ =(5 /(XY))+(((X + Y)^ 3)/ 7)
POSTFIX和PREFIX是表达在其中使用没有括号。 运营商的优先顺序决定在那里表达出现的顺序,所以要计算表达式无需搜索下一个操作FAST perform-。
而在操作人员的缀表达式优先由括号覆盖。 因此括号内是有在中缀expression-需要搜索以执行例如A + B%d哪个操作-因此SLOW。
这就是原因所在转换是在计算机科学中非常有用。
这不是代码,但方式,你应该扩展后缀,以中缀::
5× - / X + 3 + 7 / +
5(XY)/ XY + 3 ^ 7 / +
(5 /(XY))+ XY 3 ^ 7 / +
(5 /(XY))(X + Y)3 ^ 7 / +
(5 /(XY))((X + Y)^ 3)7 / +
(5 /(XY))(((X + Y)^ 3)/ 7)+
(5 /(XY))+(((X + Y)^ 3)/ 7)
这是相当直截了当:
为了解决这个在C ++我创建一个基类( Expression
)与代表不同类型的节点的派生类( Value
, Variable
,和BinaryOperation
)并保持std::stack<std::shared_ptr<Expression>>
。 编码这一点主要是打字练习。