中缀表达式转换后缀表达式.docVIP

  • 4
  • 0
  • 约6.84千字
  • 约 9页
  • 2019-04-27 发布于江苏
  • 举报
中缀表达式转换为后缀表达式 课程设计任务: 中缀表达式转后缀表达式,并求值。 课程设计思路: 把中缀表达式转换为后缀表达式算法的基本思路是从头到尾地扫描中缀表达式中的每个字符,对于不同类型的字符按不情况进行处理。若遇到的是空格则认为是分隔符,不需要进行处理;若遇到的是数字或小数点,则直接写入到c2中;若遇到的是左括号,则应把它压入到运算符栈中,待以它开始的括号内的表达式转换完毕后再出栈;若遇到的是右括号,则表明括号内的中缀表达式已经扫描完毕,把从栈底直到保存着的对应左括号之间的运算符依次退栈并写入c2串中;若遇到的是运算符,当该运算符的优先级大于栈顶运算符的优先级(加减运算符的优先级设定为1,乘除运算符的优先级设定为2,在栈中保存的特殊运算符’(’的优先级设定为0)时,表明该运算符的后一个运算对象还没有被扫描并放入到c2串中,应把它暂存于运算符栈中,待它的后一个运算对象从c1串中读出并写入到c2串中后,再另其出栈并写入c2串中;若遇到的运算符的优先级小于等于栈顶运算符的优先级,这表明栈顶运算符的两个运算对象已经被保存到c2串中,应将栈顶运算符退栈并写入到c2串中,对于新的栈顶运算符仍继续进行比较和处理,直到被处理的运算符的优先级大于栈顶运算符的优先级为止,然后另该运算符进栈即可。 按照以上过程扫描到中缀表达式结束符时,把栈中剩余的运算符依次退栈并写入到后缀表达式中,再向c2写入表

文档评论(0)

1亿VIP精品文档

相关文档