根据它的顺序构建树很容易。
但是,假设你应该基于它的预订(例如+ + y z + * x y z
)构建一棵树。
很容易看出+
是根,以及如何从那里继续左边的子树。
但是......你怎么知道什么时候应该“切换”到正确的子树?
答案 0 :(得分:1)
通常情况下,被认为是一个困难的案例。
对于预购,你只需要这样的语法。
expr ::= operator expr expr | var
运算符之后是正好两个格式正确的表达式。这可以使用递归
轻松解析如果解析树并获取变量,则返回变量。 如果解析树并获取运算符,请将以下两个树解析为右/左子树。