构造给定表达式的表达式树的Python程序
表达式树是叶节点具有要操作的值,内部节点包含叶节点将执行的运算符的树结构。
例如: 4 + ((7 + 9) * 2)将具有以下表达式树-
更多Python相关文章,请阅读:Python 教程
解决此问题的方法
为了为给定的表达式构造表达式树,通常使用堆栈数据结构。最初,我们迭代给定的后缀表达式,并按照以下步骤执行-
- 如果我们在给定表达式中得到一个操作数,则将其推送到堆栈中。它将成为表达式树的根。
- 如果运算符在表达式中获得两个值,则将其作为其子级添加到表达式树中,并将它们推入当前节点。
- 重复步骤1和步骤2,直到我们完成所有的给定表达式。
例子
运行上述代码将生成以下输出:
输出
解释:
从给定表达式构造树将生成这样的输出:操作数将成为节点的根,其余数字将成为表达式树的子节点。