首页 > 试题广场 >

表达式"X=A+B*(C-D)E"的后缀表示形式可以是?

[单选题]
表达式"X=A+B*(C-D)/E"的后缀表示形式可以是()
  • XAB+CDE/-*=
  • XA+BC-DE/*=
  • XABCD-*E/+=
  • XABCDE+*/=
推荐
答案为C,
思路如下:
X=A+B*(C-D)/E
1)扫描X为数字,进行输出 X
2)扫描=为操作符,进栈,栈中元素为:=
3)扫描A为数字,进行输出A,输出的元素为X,A 栈中元素为:=
4)扫描+为操作符,由于+>=(栈顶)进栈,栈中元素为:+,=
5)扫描B为数字,进行输出B,输出的元素为X,A,B 栈中元素为:=
6) 扫描*为操作符,由于 *>+(栈顶) 进栈,栈中元素为:*,+,=
7)扫描(为操作符,进栈,栈中元素为:(, *,+,=
8)扫描C为数字,进行输出C,输出的元素为X,A,B,C   栈中元素为:(, *,+,=
9) 扫描-为操作符,进栈,栈中元素为:-,(, *,+,=
10)扫描D为数字,进行输出D,输出的元素为X,A,B,C,D   栈中元素为:-(, *,+,=
11)扫描)为操作符,进行弹出操作,直到遇见(为止,输出元素为:- ,总的 输出元素为X,A,B,C,D,- ,栈中元素为: *,+,=
12) 扫描/为操作符,此时栈顶元素为*,由于*,/优先级相同,依次弹出直到遇见比/优先级低的为止,然后/进栈 输出元素为:*, 总的输出为: 输出的元素为X,A,B,C,-,*  栈中元素为:/ ,+,=
13) 扫描E为数字,进行输出E,输出的元素E,总的输出元素为 X,A,B,C,D,-,*,E   栈中元素为: / ,+,=
14)到此扫描结束,依次弹出栈中剩余的元素,输出的的元素为 / ,+,=, 总的输出元素为 X,A,B,C,D,-,*,E, / ,+,=
编辑于 2015-10-12 14:27:11 回复(2)
从左到右依次遍历
遇到变量输出遇到运算符入栈
1.遇到X输出
输出:X
2.遇到=入栈
输出:X     栈内容:=
3遇到A输出
输出:XA 栈内容:=
4遇到+入栈
输出:XA 栈内容:=+
5遇到B输出
输出:XAB 栈内容:=+
6遇到*入栈
输出XAB 栈内容:=+*
7遇到(入栈 (在遇到)时出栈不输出
输出:XAB  栈内容:=+*(
8遇到C输出
输出:XABC 栈内容:=+*(
9遇到-入栈
输出:XABC 栈内容:=+*(-
10遇到D输出
输出:XABCD 栈内容:=+*(-
11遇到)出栈
输出:XABCD- 栈内容:=+*
12遇到/  *出栈 /入栈
输出XABCD-* 栈:=+/
13遇到遇到E输出
输出:XABCD-*E 栈内容:=+/
遍历完成
出栈
输出:XABCD-*E/+=
发表于 2015-10-12 15:53:11 回复(1)
选 c
人工实现转换
这里我给出一个中缀表达式:a+b*c-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号:式子变成了:((a+(b*c))-(d+e))
第二步:转换后缀表达式
后缀:把运算符号移动到对应的括号后面
则变成了:((a(bc)* )+ (de)+ )-
把括号去掉:abc*+de+- 后缀式子出现
发表于 2015-03-04 21:39:20 回复(5)

前,中,后缀表达式,对应于二叉树的前序遍历,中序遍历,后序遍历。题目给的是终追表达式,所以先根据表达式的结合顺序,构造一颗二叉树。
如图
image

根据二叉树,再写出它的后序遍历即可。

发表于 2017-09-25 17:52:51 回复(2)
发表于 2022-07-13 16:52:07 回复(0)
后缀表达式和实际运算过程运算符先后顺序一样的,入栈出栈太麻烦
发表于 2015-10-21 15:53:08 回复(1)
咋看不懂
发表于 2022-01-29 17:37:50 回复(0)
例子:
35,15,+,80,70,-,*,20,/               //后缀表达方式

(((35+15)*(80-70))/20)=25           //中缀表达方式  

/,*,+,35,15,-,80,70, 20             //前缀表达方式 
发表于 2015-11-08 22:31:40 回复(0)
C
先进行括号里面的运算c-d 然后乘以B 再除以 E 再加上A 最后赋值  后缀表达式就是先数字进栈 再是运算符进栈,所以选C
发表于 2015-10-12 23:38:39 回复(0)
凹头像
C很明显啊
发表于 2015-10-12 08:57:50 回复(1)
题都看不懂,后缀表示形式是什么意思?
发表于 2022-07-19 10:13:57 回复(0)
具体怎么来的啊 不用进出栈的方法分析
发表于 2017-03-11 21:48:54 回复(0)
答案为C,表达式通常是中缀表达式,将其还原再转化为后缀表达式即可,可参考数据结构相关知识。
发表于 2015-10-12 22:18:06 回复(0)
是C吗?
发表于 2015-03-04 10:40:38 回复(0)
不会就选c
发表于 2022-02-16 11:44:38 回复(0)