问题描述:
前缀转中缀示例,允许有多余括号:
* + 4 2 + 3 6 => ( 4 + 2 ) * ( 3 + 6 )
- + / 3 4 2 5 => (3 /4 + 2) - 5
- + 3 / 4 2 5 => (3 + 4/2) - 5
思路1(递归):
1. 从左向右扫描
2. 遇到操作符,则递归求解,返回新字符串,遇到数字,则直接返回数字串,例如:
case ‘*‘:
return "(" + exp() + "*" + exp() + ")"; //注意加括号,保证中缀表达式能正确求解
default:
return next_str;
思路2(树):
1. 从左向右扫描
2. 根据操作符,不断构造子树
3. 中序遍历树,并输出,即可得到中缀表达式
转载请注明引用自:
http://www.cnblogs.com/breakthings/p/4051912.html
时间: 2024-11-01 12:29:00