解析
答案为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, / ,+,=