- 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 应做一下逆序处理。便可以按照后缀表达式的计算方法计算了!
做法如下
将该字符与运算符栈顶的运算符的优先关系相比较。如果,
您可能关注的文档
最近下载
- 哈萨克斯坦铁路运输车站代码大全(英俄文查询).pdf VIP
- LKJ2000使用和操作方法课件.ppt VIP
- NBT-47013—2015《承压设备无损检测》勘误表.docx VIP
- 武汉大学《水利工程施工》水电-课程设计.pdf VIP
- 广东2024年新高考化学高考试卷(附答案解析).docx VIP
- 2026中考一轮复习24 封建时代的欧洲(教案)2026年中考历史一轮复习.docx VIP
- 关于云南职教高考文件政策解读——PPT(可直接使用)).pptx VIP
- 2025版预包装食品标签及包装合规性审核检查表-.docx VIP
- LKJ2000列车运行监控记录装置课件.ppt VIP
- 加气块砌筑技术交底大全.pdf VIP
原创力文档

文档评论(0)