什么是表达式树及其评估方式?它是以自上而下和左右的方式进行评估的吗?
答案 0 :(得分:2)
二进制表达式树从叶子到根进行评估,通常从左到右(对于算术运算。它取决于表达式和树的类型) - 通常是递归的。
此图片可以帮助您理解表达式树的主要原则:
但是,这个问题过于简单和广泛。请下次查看问题并提出问题仅,如果它是特定的并且在互联网上没有答案。
互联网上有很多关于这个主题的文章从Wikipedia article with algorithm and examples in pseudo-code开始,到许多其他文章结尾。
答案 1 :(得分:1)
表达式树只是任何代数表达式的表示,作为二叉树的节点。根据表达式的不同,您将选择遍历来评估树(当然也可以创建它)。
如果您的原始代数表达式为standard algebraic expression
,请执行in-order traversal
。
如果是prefix algebraic expression
,则执行pre-order traversal
。
如果是post-fix
,则在二叉树上执行post-order traversal
。
- 用于创建和评估树。
编辑:@YeldarKurmangaliyev给出的答案是标准代数表达式的显示,因此使用inorder遍历创建(并评估)树。
答案 2 :(得分:0)
表达式树是由/作为树显示/转换的表达式。
e.g。
x =(y + 4)* 2
可以显示为
*
/ \
+ 2
/ \
y 4
大多数评估是从左到右,可以立即从树上看到。如果评估顺序不同,则树看起来会有所不同。