中缀表达式转化为后缀表达式算法.docxVIP

  • 20
  • 0
  • 约1.32千字
  • 约 3页
  • 2023-08-31 发布于上海
  • 举报
中缀表达式转化为后缀表达式算法 中缀表达式转化为后缀表达式算法 首先需要分配 2 个栈,一个作为临时存储运算符的栈 S1(含一个结束符号),一个作为输入后缀表达式的栈 S2 (空栈),S1 栈可先放入优先级最低的运算符 #,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定非 #不可。从中缀式的左端开始取字符,逐序进行如下步骤: 若取出的字符是数字,则分析出完整的运算数,该运算 数直接送入 S2 栈 若取出的字符是运算符,则将该运算符与 S1 栈栈顶元素比较,如果该运算符优先级大于 S1 栈栈顶运算符优先级, 则将该运算符进 S1 栈,否者,将 S1 栈的栈顶运算符弹出,送入 S2 栈中,直至 S1 栈栈顶运算符低于(不包括等于)该运算符优先级, 则将该运算符送入 S1 栈。 若取出的字符是“(”,则直接送入 S1 栈栈顶。 若取出的字符是“)”,则将距离 S1 栈栈顶最近的“(”之间的运算符,逐个出栈,依次送入 S2 栈,此时抛弃“(”。 重复上面的 1~4 步,直至处理完所有的输入字符 若取出的字符是“ #”,则将 S1 栈内所有运算符(不包括“#”),逐个出栈,依次送入 S2 栈。 完成以上步骤, S2 栈便为后缀表达式输出结果。不过 S2 应做一下逆序处理。便可以按照后缀表达式的计算方法计算了! 做法如下 将该字符与运算符栈顶的运算符的优先关系相比较。如果,

文档评论(0)

1亿VIP精品文档

相关文档