什么是数据结构中的表达式树?

时间:2015-10-19 08:28:39

标签: algorithm data-structures

什么是表达式树及其评估方式?它是以自上而下和左右的方式进行评估的吗?

3 个答案:

答案 0 :(得分:2)

二进制表达式树从叶子到根进行评估,通常从左到右(对于算术运算。它取决于表达式和树的类型) - 通常是递归的。

此图片可以帮助您理解表达式树的主要原则:

enter image description here

但是,这个问题过于简单和广泛。请下次查看问题并提出问题,如果它是特定的并且在互联网上没有答案。

互联网上有很多关于这个主题的文章从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     

大多数评估是从左到右,可以立即从树上看到。如果评估顺序不同,则树看起来会有所不同。