算术表达式转为后缀式

一世执手 提交于 2019-12-09 22:17:49

主要思路:从左到右扫描算术表达式,遇到的操作数直接存放到后缀表达式中,遇到的运算符以及左括号都暂时保存到运算符栈且先执行的运算符先出栈。
前提说明:exp:中缀表达式;postexp:后缀表达式;
算法描述:在扫描exp遇到一个运算符op时,
1、若栈为空,直接进栈
2、若不为空,当op的优先级高于栈顶运算符的优先级时才直接将op进栈,否则依次出栈并存入postexp,直到栈顶运算符的优先级小于op的优先级为止,然后再将op进栈。
3、若op为 ‘(’ ,直接进栈。
4、若op为 ‘)’ ,出栈运算符并存入postexp,直到栈顶为 ‘(’ ,再将 ‘(’ 出栈。
5、若op为其他运算符,而栈顶为 ‘(’ ,直接进栈。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!