栈的经典使用

逆波兰表达式法

    标准四则运算表达式—中缀表达式 例:9 + ( 3 - 1) * 3 + 10 / 2     

    计算机采用—后缀表达式 例:9 3 1 - 3 * + 10 / 2 +

中缀表达式转后缀表达式 9 + ( 3 - 1) * 3 + 10 / 2    -->  9 3 1 - 3 * + 10 / 2 +
         数字输出,运算符进栈,括号匹配出栈,运算符相遇输出优先级高的(先输出运算符后的数字)

数字输出,运算符进栈  9 + ( 3 - 1) * 3 + 10 / 2   -->  ( 3 - 1) * 3 + 10 / 2  输出:9


运算符进栈 ( 3 - 1) * 3 + 10 / 2  --> ) * 3 + 10 / 2  输出:9 3 1


括号匹配出栈:  ) * 3 + 10 / 2  -->  * 3 + 10 / 2      “ * ”进栈,先输出“ * ”后面的3: * 3 + 10 / 2   -->  + 10 / 2 

            输出:9 3 1 - 3


运算符相遇输出优先级高的 栈顶“+”优先级比“ * ”优先级低,“ * ”出栈," + "进栈然后出栈,10出栈,“ / ”进栈输出2 : 

                                + 10 / 2  -->  输出完     输出:9 3 1 - 3 * + 10 2


栈顶“+”优先级比“ / ”优先级低,“ / ”出栈,最后" + "出栈   输出:9 3 1 - 3 * + 10 2 / 

后缀表达式计算:

   计算方法:9 3 1 - 3 * + 10 2 / + ,表达式从左至右挨个进栈 9 3 1,遇到符号弹出最进两个计算,栈底的放后面,如3 - 1 ,将计算结果2进栈,9 2 3 遇到符号2 3 出栈计算结果进栈,9 6 。。。 


    9 3 1 - 3 * + 10 2 / +
    9 2 3 * + 10 2 / +
    9 6 + 10 2 / +
    15 10 2 / +
    15 5 +
    20

   


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值