您的位置:首页 > 其它

由中缀式转化为后缀式

2012-08-31 20:53 239 查看
比如: 10+(18+9*3)/ 15 - 6

步骤如下:

  首先初始化两个栈,S1,S2;S1存操作数,S2存运算符,然后从左到右扫描,

  1.遇到( ,直接进栈 ,遇到 ) 时,把S2中的操作数一直到 ( 之前 ,都存入 S1,

  2. 遇到 + — * / 时,如果当前的算符优先级小于S2中的优先级的话,就压入S1中

  S1:10 18 9 3

  S2:+ ( + *

  这时遇到右括号:

  S1:10 18 9 3 * +

  S2:+

  S1:10 18 9 3 * + 15

  s2:+ /

  S1:10 18 9 3 * + 15 / +6

  S2:—  

  

  S1:10 18 9 3 * + 15 / + 6 —

  S2:

到此结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: