波兰表达式:
这里没找到什么好的帖子可以通俗点说,我就用自己的语言解释下首先,我们平时熟悉的 1+1 的运算符(操作符)是在中间的,所以就叫中缀表达式
而波兰表达式的操作符是在前面,1+1 <=> + 1 1,这种被成为前缀表达式
但今天的重点不是他们,是逆波兰表达式 1+1 <=> 1 1 + ,又叫后缀表达式
那这些表达式他们有什么用呢?莫非这样一转程序就能理解了?
给你看个东西 1 + 1 <=> + 1 1 <=> +(1,1)
诺,熟悉不,把它转换为调用函数的方式,问题不就迎刃而解了?
那为什么说今天的重点是后缀表达式呢
因为我没找到中缀表达式的计算过程
因为后缀表达式比中缀表达式更好理解点(自认为)
就好比 1 1 + ,如果你看到这个式子你应该怎么去计算1+1? 把+号前面两个数字,相加对吧~
1 + 2 – 1 <=> 1 2 + 1 – =》先把+号前面两个数字相加,得到3,原后缀表达式可以转换为 3 1 – ,再把-号前面两个数字相减得到2
(关于逆波兰式的转换一时半会讲不清,感兴趣的可以自己去B站看对应教程)
1 + ( 2 – 1 ) <=> 1 2 1 – + 同上自己算下
1 + 2*1 – 1 <=> 1 2 1 * + – 同上自己算下
这样你就会发现,用了后缀表达式后不管是括号,还是运算顺序之类的之前看似很复杂的问题,迎刃而解
步骤大致就是:
遍历数据:
遇到 数字:直接输出
遇到 操作符 :
1. 如果 此时栈顶元素的优先级大于操作符,那么将栈中元素全部弹出并输出后,再压入操作符
2. 反之直接压入栈中
遍历完数据后:将栈中元素全部弹出并输出
参考至:后缀表达式_星辰浩宇的博客-CSDN博客
(PS:之前因为我理解错了CSDN中的内容,并没有将栈中元素全部弹出,而是只弹出了栈顶元素,就因为这个BUG我修了三四天!!!)
测试:
(PS:那个**GPT自己都会算错,所以后来我拿计算器自己算了一边,统计结果就是,五个表达式,GPT错两个,我的程序除了最后一个有精度丢失的问题其他全对)
相关文章
- 1 女子西藏旅途偶遇28岁骑行“大叔”
- 2 中甲联赛大连一赛场发生球员暴力事件
- 3 某网红下播时忘记关摄像头,直播间瞬间炸了
- 4 伪娘穿裙子跳舞看起来超级辣眼睛
- 5 棺材惊现巨蟒,尸体被蛇吃了骨头都不剩!
- 6 上海路炒粉、江一烧饼店事件吸引一波波流量
- 7 滴滴司机遇上性感美女打车,下一秒却立马请她下车!
- 8 胖猫跳江去世,5个意想不到
- 9 迈腾车主刚离家出门半小时就被绿,女友带其他男人回家
- 10 日本男子花百万日元将自己变成狗
- 11 真正的调整显示器亮度
- 12 PGE游戏引擎FC快打旋风
- 13 易语言Julia集图片源码
- 14 易语言ChartV1.0模块源码
- 15 易语言OFFICE文档转换成PDF源码
- 16 易语言网络电视源码
- 17 易语言SQLite3数据库操作类模块源码
- 18 易语言ICO提取工具源码
- 19 易语言程序备份器源码
- 20 模仿QQ游戏登陆界面
-
扫码下载安卓APP
-
微信扫一扫关注我们微信扫一扫打开小程序手Q扫一扫打开小程序
-
返回顶部
发表评论