已知操作符包括‘+’、‘-’、…、‘/’‘(’和‘)’。将中缀表达式a+b-a*((c+d)/e-f)+g转换为等价的后缀表达式ab+acd+e/f-*-g+时,用栈来存放暂时还不能确定运算次序的操作符,若栈初始时为空,则转换过程中同时保存在栈中的操作符的最大个数是_______。
A、
5
B、
7
C、
8
D、
11
【正确答案】
A
【答案解析】
解析:表达式求值是栈的典型应用。中缀表达式不仅依赖于运算符的优先级,还要处理括号。后缀表达式的运算符在表达式的后面且没有括号,其形式已经包含了运算符的优先级。所以从中缀表达式转换到后缀表达式需要用运算符进行处理,使其包含运算符优先级的信息,从而转换为后缀表达式的形式。转换过程如下表:
提交答案
关闭