中缀转后缀
"1+((2+3)4)-5" -> 123+4+5-
定义两个栈
一个栈存放数字,一个存放符号
遇到数字直接将数字放在数字栈中,
遇到符号:
1.如果符号栈为空,或者符号为“左括号”,直接加入栈中,
2.如果符号的运算优先级高于符号栈的栈顶,也直接加入符号栈中,
3.如果符号的运算等级低于或者等于栈顶符号,符号栈一直吐出栈顶元素加入到数字栈中直到当前符号的优先级小于栈顶,或直接到符号栈为空。并将当前符号加入到符号栈中
4.如果遇到“右括号”符号栈一直吐元素到数字栈中直到遇到“左括号”,做抵消
5.将符号栈中的元素全部吐出到数字栈中,遍历数字栈,反向即为后缀表达式
后缀表达式转中缀
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、中缀表达式转后缀表达式 中缀表达式:就是我们平时书写的带括号的标准四则运算表达式,如9+(3-1)*3+10/...
- 中缀表达式怎么转成后缀表达式? 1)初始化两个栈,分别用于存储后缀表达式结果S2和利用S1栈完成运算符号的指定位置...
- 中缀表达式(infix): 数学里面的公式就是中缀表达式,是我们生活中里面常用的表达式,比如说 a*(b+c), ...