我有一个像这样的字符串/表达式:
(((p1 == 1) && (p2 != 2)) || p3 > 3) || (p4 < 5)
我想递归地解析这个表达式,以便构建一个二进制表达式树。
因此,对于这个表达式,根将是||操作
如何构建该算法? 提前谢谢,
答案 0 :(得分:3)
在计算机科学中, shunting-yard算法是一种方法 解析中缀表示法中指定的数学表达式。它可以 用于以反向波兰表示法(RPN)或作为一个产生输出 抽象语法树(AST)。该算法由Edsger发明 Dijkstra因其操作而命名为“调车场”算法 类似于铁路调车场。