社区
Java SE
帖子详情
java四则运算的实现,怎么把中缀式转为后缀式
黑夜中的一点慰藉
2013-01-25 10:44:47
自己了解了中缀式转后缀式的原理,但写的时候老有问题,在运算符多了的时候在压栈出栈就不对了,求大神给点小例子或者是建议指点也可以,
...全文
98
1
打赏
收藏
java四则运算的实现,怎么把中缀式转为后缀式
自己了解了中缀式转后缀式的原理,但写的时候老有问题,在运算符多了的时候在压栈出栈就不对了,求大神给点小例子或者是建议指点也可以,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ZZZ5512536
2013-01-25
打赏
举报
回复
我记得前不久看的Java数据结构和算法(第二版)里有这样的代码,你可以去找找看
中缀
表达
式
转
后缀
表达
式
并计算
java
将一个表达
式
转为
后缀
表达
式
,用堆栈计算
中缀
转
后缀
的过程中遇到数字直接输出,遇到符号则判断优先级。
【
Java
实现
】
中缀
表达
式
转
后缀
表达
式
(用于计算混合
四则运算
表达
式
)
一、原理学习 1.什么是
中缀
表达
式
? 2.什么是
后缀
表达
式
? 3.
中缀
表达
式
转为
后缀
表达
式
的步骤 1.初始化一个栈和一个队列,一个StringBuilder字符串sb:运算符栈op,存储中间结果的队列exp,存储数字的字符串sb。 2. 从左到右扫描
中缀
表达
式
。 3. 遇到操作数时,将其添加到exp(一位数)。 (多位数的情况)扫描到:第一个字符(不是左括号)或数字或小数点.直接加入到sb中(因为第一位要么是±、(,要么是数字) 2)判断这个数字是否结束了,结束就将sb转化为字符串加入到exp队列中
栈的应用-
四则运算
(包括如何进行
中缀
表达
式
转换
后缀
表达
式
)
栈的应用-
四则运算
(包括如何进行
中缀
表达
式
转换
后缀
表达
式
) 计算机是如何利用栈来进行四则表达
式
的运算的呢? 如果单纯是按照顺序来算的话,如何区分括号以及加减乘除之间的关系的呢? 首先,梳理一下总体的逻辑。 我们按照计算顺序输入的字符串(例如:“9+(3-1)×3+10÷2”)叫做
中缀
表达
式
,因为所有的运算符号都在两数字的中间 我们利用
中缀
表达
式
通过某种方法得到
后缀
表达
式
其中:某种方法就是下面提到...
计算器——可支持小数的任意
四则运算
(
中缀
表达
式
转为
后缀
表达
式
算法)
如果遇到运算符,则分两种情况处理:如果运算符优先级大于等于栈顶运算符的优先级,则将栈顶运算符弹出并压入
后缀
表达
式
,直到栈为空或者栈顶运算符的优先级低于当前运算符为止,然后将当前运算符压入栈;如果运算符优先级小于栈顶运算符的优先级,则直接将当前运算符压入栈。需要注意的是,在实际应用中,可能还需要进行一些额外的处理,比如补全缺失的括号,以确保表达
式
的正确性。当表达
式
扫描完毕后,如果栈中仍有剩余的运算符,则将这些运算符依次弹出并压入
后缀
表达
式
。初始化两个栈,一个用于存储操作数,一个用于存储运算符。
复杂
四则运算
的
中缀
表达
式
转
后缀
表达
式
(逆波兰表达
式
)
Java
版
复杂
四则运算
包括多位数和负数运算
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章