大家安安,o'_'o
最近我想要判断两(后序)运算式是否相等,例如中序式 A + (B+C)*D - E 的后序式可以是
BC+D* A + E - 或 A BC+D* E - +。
一开始的想法是构造 expression tree 然后看看经过旋转后是否相等,但是我发现加法、乘法有交换律与
结合律,事情就变得好复杂。
比如把上面的例子简化为中序式 X + Y - Z,后序式的写法包括但或许不限于 X Y + Z - 及 X Y Z - + 等
等。写成 expression tree 的话分别是:
-
/ \
+ Z
/ \
X Y
+
/ \
X -
/ \
Y Z
这样似乎就没办法继续惹
想请问各位大大能否给我一些方向,谢谢!!