🏷️ 知识点:中缀转后缀
2012 年第 2 题
数据结构
选择题
已知操作符包括 +、−、∗、/、( 和 )。将中缀表达式 a+b−a∗((c+d)/e−f)+g 转换为等价的后缀表达式 ab+acd+e/f−∗−g+ 时,用栈来存放暂时还不能确定运算次序的操作符,若栈初始为空,则转换过程中同时保存在栈中的操作符的最大个数是( )。
A. 5
B. 7
C. 8
D. 11
[tag_link]
正确答案:A表达式求值是栈的典型应用。中缀表达式不仅依赖千运算符的优先级,而且要处理括号。后缀表达式的运算符在表达式的后面且没有括号,其形式已经包含了运算符的优先级。所以从 中序转后序 需要用运算符进行处理,使其包含运算符优先级的信息,从而转换为后缀表达式的形式。
2014 年第 2 题
数据结构
选择题
假设栈初始为空,将中缀表达式 a/b+(c*d-e*f/ g转换为等价的后缀表达式的过程中,当扫描到f 时, 栈中的元素依次是()。
A.+(*-
B.+(一*
C. /+(*一*
D. /+ 一*
[tag_link]
正确答案:B
中序转后序的过程详见 此节 。