可以想象成“(”比任何运算符都高,“)”比任何运算符都低 。 (6) 重复步骤(2)至(5),直到表达式的最右边; (7) 将S1中剩余的运算符依次弹出并压入S2; (8) 依次弹出S2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式(转换为前缀表达式时不用逆序)。
这里我给出一个中缀表达式a+b*c-(d+e) 第一步:按照运算符的优先级对所有的运算单位加括号,式子变成:((a+(b*c))-(d+e)) 第二步:转换前缀与后缀表达式 前缀:把运算符号移动到对应的括号前面 则变成:-( +(a *(bc)) +(de)),把括号去掉:-+a*bc+de 前缀式子出现 后缀:把运算符号移动到对应的括...
第一步:按照位运算符优先级给表达式加括号: ((a-(b/c))+(d*e)) 第二步:把运算符移动到括号的前面: 得前缀表达式:+-a/bc*de 转换成后缀表达式: 第一步:同上; 第二步:把运算符移动到括号的后面: 得后缀表达式:abc/-de*+
输入 输入一算术表达式,以\'#\'字符作为结束标志。(数据保证无空格,只有一组输入) 输出 输出该表达式转换所得到的前缀式 中缀式 后缀式。分三行输出,顺序是前缀式 中缀式 后缀式。 示例输入 a*b+(c-d/e)*f# 示例输出 +*ab*-c/def a*b+c-d/e*f ab*cde/-f*+ View Code...