表达式x*(y-z)+u的逆波兰表示是 xyzu*—+ xyz*—u+ xyz—*u+ +—*xyzu
表达式x*(y-z)+u的逆波兰表示是
答案为C。
该题目是将中序表达式转变为后序表达式。
进行中缀转后缀操作,使用符号栈存储遍历过程中遇到的符号。
从左到右遍历中缀表达式,遇到数字直接输出,遇到符号准备将其放入符号栈:
若符号栈为空,直接放入。
若当前符号大于栈顶符号优先级,直接放入。
如果小于等于栈顶符号优先级,将栈顶符号弹出,直到栈顶符号小于当前符号,再将当前符号入栈。
如果当前符号为“(”,直接入栈。
如果当前符号为“)”,依次将符号栈的符号弹出,直到找到“(”。
按此规则进行遍历,最后如果符号栈仍有符号,弹出即可。