首页 > 试题广场 >

表达式x*(y-z)+u的逆波兰表示是

[单选题]

表达式x*y-z+u的逆波兰表示是

  • xyzu*—+
  • xyz*—u+
  • xyz—*u+
  • +—*xyzu
逆波兰式:每一运算符都置于其运算对象之后

后序遍历表达式: xyz-*u+
发表于 2015-08-22 11:15:13 回复(0)
答案为C。
该题目是将中序表达式转变为后序表达式。
进行中缀转后缀操作,使用符号栈存储遍历过程中遇到的符号。
从左到右遍历中缀表达式,遇到数字直接输出,遇到符号准备将其放入符号栈:
  1. 若符号栈为空,直接放入。
  2. 若当前符号大于栈顶符号优先级,直接放入。
  3. 如果小于等于栈顶符号优先级,将栈顶符号弹出,直到栈顶符号小于当前符号,再将当前符号入栈。
  4. 如果当前符号为“(”,直接入栈。
  5. 如果当前符号为“)”,依次将符号栈的符号弹出,直到找到“(”。
按此规则进行遍历,最后如果符号栈仍有符号,弹出即可。
发表于 2015-08-08 10:56:40 回复(0)
按照规则:遇到字母直接输出,首先输出x,遇到符号*,此时栈为空,符号*入栈,接着左括号“(” 入栈,遇到y直接输出y,遇到减号,减号优先级高于左括号,则减号入栈;遇到z直接输出z,遇到右括号,依次将符号栈的符号弹出,直到找到“(”,此时出栈顺序为:—,(,栈内还剩余符号*,接下来遇到“+”号,“+”号优先级小于“*”号,所以弹出符号“*”,“+”号入栈,接着输出字母u,最后弹出符号栈里面的符号“+”,故后序表达式为:xyz-*u+
发表于 2015-08-14 18:52:55 回复(0)
这是哪门课的知识
发表于 2017-09-07 08:56:34 回复(1)
逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)
发表于 2017-08-14 13:23:22 回复(0)
按照 @牛客000001号 的图示,后缀表达式就是对这个树进行后序遍历。



后序遍历表达式: xyz-*u+
发表于 2017-05-09 15:31:32 回复(0)
读题:中序遍历转变成后序遍历
解答:
后序遍历方法: 若二叉树为空,遍历结束,否则:
后序遍历根结点的左子树;
后序遍历根结点的右子树;
访问根结点

发表于 2016-08-15 21:27:34 回复(0)
这个逆波兰原来就是后缀表达式,还是刚刚在百度上面查看的,首先看表达是的运算顺序,然后把运算符放到运算对象后面就可以了
发表于 2016-08-01 10:50:23 回复(0)
后缀表达方式
发表于 2016-07-27 20:15:50 回复(0)
离散数学
发表于 2016-07-14 13:30:43 回复(0)
后根遍历。
发表于 2016-04-08 18:15:35 回复(0)
逆波兰式:每一运算符都置于其运算对象之后

后序遍历表达式: xyz-*u+
发表于 2015-09-18 11:16:48 回复(0)
1、整个表达式最后算+u,则逆波兰式的最后是u+
2、除去+u部分,前面最后要算的是*号,所以,逆波兰式的最后部分是*u+
3、选C
发表于 2015-08-13 15:18:40 回复(0)
y-z有括号,优先计算,yz-,之后是优先级较高的*,x在(y-z)前面,即有xyz-*,最后是右边的u,从而有xyz-*u+,如果是u+ x* y-z ),答案应该是uxyz-*+,如果是 y-z )*x +u,答案应该是yz-x*u+,如果是 u + y-z )*x,答案应该是uyz-x*+。请指教。
发表于 2015-08-12 05:28:41 回复(0)