中缀表达式A一(B+C/D)*E的后缀形式是( )。

admin2019-08-10  40

问题 中缀表达式A一(B+C/D)*E的后缀形式是(    )。

选项 A、AB—C+D/E*
B、ABC+D/一E*
C、ABCD/E*+一
D、ABCD/+E*一

答案D

解析 将中缀表达式转换为后缀表达式需要一个运算符栈,假设中缀表达式本身合法且在字符数组A中,转换后的后缀表达式存储在字符数组B中。具体做法:从左到右扫描表达式。遇到运算对象顺序向存储后缀表达式的B数组中存放,遇到运算符时,若这个运算符比栈顶运算符高则人栈,继续向后处理,若这个运算符比栈顶运算符低则运算符出栈,并将其送入数组B中存放。其实中缀表达式和后缀表达式中操作数出现的次序是相同的,只是运算符的出现次序不同。在后缀表达式中,运算符出现的次序就是实际应计算的顺序。一种方法是把中缀表达式中所有的计算顺序都按照计算规则用嵌套括号形式表示出来,然后将每对括号中的运算符移到相应括号的后面,在删去所有括号,便得到等价的后缀表达式。A一(B+C/D)*E表示为:(A一((B+(C/D))*E))转换为:ABCD/+E*一故选D。
转载请注明原文地址:https://kaotiyun.com/show/HgCi777K
0

最新回复(0)