中缀表达式转换为后缀表达式的算法思想如下:
从左向右开始扫描中缀表达式;
遇到数字时,加入后缀表达式;
遇到运算符时:
若为‘(’,入栈;
若为‘)’,则依次把栈中的运算符加入后缀表达式中,直到出现‘(’,从栈中删除‘(’;
若为除括号以外的运算符,当其优先级高于除‘(’以外的栈顶运算符时,直接入栈。否则,从栈顶开始,依次弹出比当前处理的运算符优先级高和优先级相等的运算符,直到一个比它优先级低的或者遇到了一个左括号为止。
中缀表达式转换为后缀表达式的算法思想如下:
从左向右开始扫描中缀表达式;
遇到数字时,加入后缀表达式;
遇到运算符时:
若为‘(’,入栈;
若为‘)’,则依次把栈中的运算符加入后缀表达式中,直到出现‘(’,从栈中删除‘(’;
若为除括号以外的运算符,当其优先级高于除‘(’以外的栈顶运算符时,直接入栈。否则,从栈顶开始,依次弹出比当前处理的运算符优先级高和优先级相等的运算符,直到一个比它优先级低的或者遇到了一个左括号为止。