波兰表达式 - 前,中,后缀表达式计算转换

先看一个算术题 :(3+4)*5-6=29

前缀表达式                    -*+3456

中缀表达式                    (3+4)*5-6 你会算的

后缀表达式                    34+5*6-

利用栈的特性来运算表达式,当前我只拿到了(3+4)*5-6,让我求它的前缀和后缀。

缀口诀:

1:从左到右看,数字忙显示,符号快进栈,大哥排最前,小弟来了一起出去干。

2:括号也进栈,回括就解散,中间的出栈,它俩全玩完!

(3+4)*5-6 套入口诀

栈(横着放左边栈低,右边栈顶):[]  这个是表示栈的存放值

后缀显示的结果:“”      这个表示当前显示的结果值

上面两行绿色字分别记录下面的计算结果,一个记录当前栈,一个记录最后显示的结果

第一遇到(

“括号也进栈” 。当前:[(],“”

第二遇到3

“数字忙显示”。当前:[(],“3”

第三遇到+

“符号快进栈”。当前:[(+],“3”

第四遇到4

“数字忙显示”。当前:[(+],“34”

第四遇到 )

“回括就解散,中间的出栈,它俩全玩完”。回括号进栈  [(+)],“34” 。遇到回括号,那么括号中间的就出栈(出栈就是显示),括号两个解散了,不要了(它俩全玩完),当前:[],“34+”

第五遇到*

“符号快进栈”。当前:[*],“34+”

第六遇到5

“数字忙显示”。当前:[*],“34+5”

第七遇到-

“符号快进栈,大哥排最前,小弟来了一起干”。栈里最上面是*,来了一个地位低的-号,当前大哥*带着后面小弟一起出去(这个题*后面还没有其他+-小弟,如果有一起顺序出去),[],“34+5*” 变这样了,出去后,栈空了,- 就进栈了。当前:[-],“34+5*”

第八遇到6

“数字忙显示”。当前:[-],“34+5*6”

最后没有了,栈里的陆续出栈 

最终结果:34+5*6-

缀口诀:

1:从右到左看,数字忙进栈,符号快显示,全都往左站。

2:括号忽略掉,数字排排站,按顺序出栈,继续靠左站。

(3+4)*5-6 套入口诀

暂时不给详细解法,自己动手先看看。

后续给解法。

结果是:-*+3456

是不是口诀1的符号全部往左站,数字从右进栈是6543,出栈就是3456,“继续靠左站”贴着符号继续排列。结果如上了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值