表达式a*(b+c)-d的后缀表达式为(25)。

admin2019-06-12  7

问题 表达式a*(b+c)-d的后缀表达式为(25)。

选项 A、abcd*+-
B、abc+*d-
C、abc*+d-
D、-+*abcd

答案B

解析 题目要求根据已知的表达式写对应的后缀表达式。解这种题,如果知道前缀、中缀、后缀表达式有何关联,有什么特点,解题就非常轻松。其实前缀、中缀、后缀的得名是从二叉树来的,也就是把一个表达式转化为一棵二叉树后,对二叉树进行前序遍历得到前缀表达式,对二叉树进行中序遍历得到中序表达式(也就是一般形式的表达式),对二叉树进行后序遍历得到后缀表达式。所以这里只要把表达式转成树的形式,再对二叉树进行后序遍历,即可得到正确答案。现在最主要的问题是如何构造这棵树。构造的规则是这样的:所有的操作数只能在叶子结点上,操作符是它们的根结点,括号不构造到二叉树当中去,构造树的顺序要遵循运算的顺序。在表达式a*(b+c)-d中最先计算b+c,所以先构造如图2-6所示的部分。
    然后把b+c的结果与a进行运算,有如图2-7所示的结果。

    接着把运算结果和d相减,最终得到的二叉树如图2-8所示。
    对此树进行后序遍历得到序列:abc+*d-,所以正确答案是B。
转载请注明原文地址:https://jikaoti.com/ti/XYf7FFFM
0

相关试题推荐
随机试题
最新回复(0)