首页 相关文章 数据结构辅导---栈和队列(2)

数据结构辅导---栈和队列(2)

3. 把中缀表达式转换为后缀表达式的算法
   设以’@’字符作为结束符的中缀算术表达式已经保存在s1字符串中,转换后得到的后缀算术表达式拟存于s2字符串中。由中缀表达式转换为后缀表达式的规则可知:转换前后,表达式中的数值项的次序不变,而运算符的次序发生了变化,由处在两个运算对象的中间变为处在两个运算对象的后面,同时去掉了所有的括号。为了使转换正确,必须设定一个运算符栈,并在栈底放入一个非凡算符,假定为’@’字符,让它具有最低的运算符优先级,假定为数值0,此栈用来保存扫描中缀表达式得到的暂不能放入后缀表达式中的运算符,待它的两个运算对象都放入到后缀表达式以后,再令其出栈并写入到后缀表达式中。
   把中缀表达式转换为后缀表达式算法的基本思路是从头到尾地扫描中缀表达式中的每个字符,对于不同类型的字符按不情况进行处理。若碰到的是空格则认为是分隔符,不需要进行处理;若碰到的是数字或小数点,则直接写入到s2中,并在每个数值的最后写入一个空格;若碰到的是左括号,则应把它压入到运算符栈中,待以它开始的括号内的表达式转换完毕后再出栈;若碰到的是右括号,则表明括号内的中缀表达式已经扫描完毕,把从栈底直到保存着的对应左括号之间的运算符依次退栈并写入s2串中;若碰到的是运算符,当...[ 查看全文 ]

2016-02-19 标签:

数据结构辅导---栈和队列(2)的相关文章

手机页面
收藏网站 回到头部