您的位置:首页 > 健康 > 养生 > 数学:中缀表达式转后缀表达式

数学:中缀表达式转后缀表达式

2024/12/23 10:40:44 来源:https://blog.csdn.net/kamlam96/article/details/141232287  浏览:    关键词:数学:中缀表达式转后缀表达式

中缀表达式

中缀表达式没啥好讲的,就是我们最常见到的5*3+1这种算数式

后缀表达式

具体来说,就是把中缀表达式按一些特定的规则改成一个新的式子,来看看怎么改,先准备一个栈,我们准备把2+(3*4+2)/5这个式子转成后缀表达式。

首先从前往后读入数据,如果是数字,那么直接输出,如果是运算符,那么就查看栈顶的元素是否优先级小于该运算符,如小于,则直接入栈(栈为空的时候也直接入栈),栈顶元素优先级大于或等于该运算符的话就输出栈顶运算符并将其弹出栈,继续上述步骤直到栈顶的元素优先级小于该运算符或栈空或栈顶元素为左括号,那么就将该运算符压入栈中,如果该元素为左括号,那么压入栈中,如果为右括号,那么就直接弹出栈里的元素直到左括号弹出,注意括号不输出,遍历完了就完事了。

来转转看,首先读到2,那么输出2,读到+,那么入栈,读到'(','('入栈,读到3,输出3,读到*,入栈,读到4,输出,读到+,弹出*,输出*,压入+,读到2,输出2,读到')',那么弹出+,输出+,弹出'(',读到/,压入/,读到5,输出5,然后把栈里元素全输出就完事了,也就是输出/和+,所以表达式2+(3*4+2)/5的后缀表达式为:2 3 4 * 2+5/+。

讲完了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com