#S00355. 【深基16.例8】表达式树(客观题)

【深基16.例8】表达式树(客观题)

表达式树的叶结点是操作数,非叶结点是操作符,假设所有的运算符都是双目运算符,那么表达式树就是一棵二叉树。可以通过递归计算左子树和右子树的值,然后在根结点处按照根结点的运算法则来合并左子树和右子树的值,得到根结点的值,从而可以得到整个表达式的值。下图所示为一棵表达式树。

          +
        /   \
       +     *
      / \   / \
     a   * d   e
        / \
       b   c

下面来观察一下这棵表达式树的一些性质。

表达式树的前序遍历也叫作这个表达式的前缀表达式,如图16-11所示的这棵树的前序遍历就是 + + a * b c * d e

表达式树的中序遍历也叫作这个表达式的中缀表达式,如图16-11所示的这棵树的中序遍历就是 a + b * c + d * e。中序表达式是平常最常见的表达式。

表达式树的后序遍历也叫作这个表达式的后缀表达式,如图16-11所示的这棵树的后序遍历就是 a b c * + d e * +。后缀表达式是计算机中最常用的表达式,因为便于计算机计算。在前面线性表一章中有提到过后缀表达式。

那么现在给你一个后缀表达式 4 3 * 3 4 9 + - *,它的结果是{{ input(1) }}。