首页 > 试题广场 >

若 A=10 , B=4 , C=6 , D=4 , E=1

[单选题]

A=10、B=4、C=6、D=4、E=15 则后缀表达式“ AB*CD+-E+ ”的值为 (   )

  • 45
  • 31
  • 53
  • 65
要了解后缀表达式算法运行逻辑,若当前元素为操作数则直接入栈,若为操作符则出栈俩个元素,运算后将结果入栈,以此类推。
编辑于 2021-12-03 12:29:50 回复(0)

> 先让AB入栈,碰到*,AB出栈,计算AB,结果40入栈,
> 紧接着CD入栈,碰到+,CD出栈,计算C+D,结果10入栈,
> 碰到-,40和10出栈,计算40-10,结果30入栈,
> E入栈,碰到+,30和E出栈,计算30+E,得出结果45

编辑于 2019-04-10 15:15:22 回复(0)
后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储:
遇到数字先进栈,遇到符号弹出两个数字,运算后再入栈,直到结束全部弹出~
发表于 2017-05-11 09:42:16 回复(1)
AB*CD+-E+ 

分解为:(AB*CD+-)+E--->(AB*-(C+D))+E--->(A*B-(C+D))+E--->40-(6+4)-(-15)

发表于 2017-09-05 10:17:00 回复(0)
后缀表达式的计算规则:从左到右遍历表达式的每个字符和符号,遇到数字就进栈,遇到是符号就将栈顶的两个数字出栈并计算,将计算结果再进栈,一直到最终获得结果。
发表于 2019-07-02 10:10:04 回复(1)
遇到数字 入栈
遇到符号 弹出两个数字 进行相应的操作后再入栈
AB入栈
* :AB出栈 执行 A* B = 40  40 入栈
CD入栈
+ :CD出栈,执行C+ D = 10 10入栈
-:40 和 10 出栈:40-10 = 30  30入栈
E入栈
+:30 和E出栈 30+E = 30+15 = 45
编辑于 2019-06-18 16:49:39 回复(0)
AB- 这种形式,计算表达式应该是A-B
发表于 2018-11-21 10:26:58 回复(0)
后序遍历二叉树变中序遍历二叉树,可以直接变,因为这里的ABCDE都是叶子节点,运算符都是非叶子节点。
发表于 2018-08-31 14:03:59 回复(0)
看着这个后缀式 AB*CD+-E+,简单分析一下,CD+-,显示+,之后才是-,所以应该先计算C+D,之后再是-
所以转化为中缀式是 A*B-(C+D)+E = 10*4-(6+4)+15 = 45
发表于 2017-09-07 10:04:14 回复(0)
class Solution {
    public int evalRPN(String[] tokens) {
        ArrayDeque<Integer> stack = new ArrayDeque<>();
        for (String token : tokens) {
            if (token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/")) {
                int b = stack.poll();
                int a = stack.poll();
                if (token.equals("+")) {
                    stack.push(a + b);
                } else if (token.equals("-")) {
                    stack.push(a - b);
                } else if (token.equals("*")) {
                    stack.push(a * b);
                } else {
                    stack.push(a / b);
                }
            } else {
                stack.push(Integer.valueOf(token));
            }
        }
        return stack.poll();
    }
}

发表于 2024-08-21 20:44:37 回复(0)
后缀表达式算法运行逻辑: 若当前元素为操作数则直接入栈,若为操作符则出栈俩个元素,运算后将结果入栈,以此类推。
编辑于 2023-12-07 21:00:16 回复(0)
转化为中序
发表于 2018-05-09 09:04:06 回复(0)
10+4*6-4+15
发表于 2017-08-29 14:20:21 回复(0)
40-(6+4)-(-15)
发表于 2017-07-13 21:00:32 回复(0)

问题信息

上传者:阿奻_
难度:
14条回答 2287浏览

热门推荐