计算器简单分析

例如给出一个计算公式:2-3*4+5

        其中2、3、4、5属于操作数;-、*、+属于操作符。考虑到操作符的优先级,当我们读取这个公式时,需要将其重新写成计算机可以读取的形式,如234*-5+(遇见一个操作符号,就将符号前面紧挨着的两个元素进行运算)如图:


        如果是直接针对2-3*4+5,在这里需要两个栈s1和s2,遇见操作数则将其入栈s1,遇到操作符则将其入栈s2,同时要注意,当栈s2不为空时,即将入栈的操作符的优先级如果低于栈顶的操作符的优先级,那么就将栈s2的栈顶操作符拿来运算,运算时,该操作符右边的数则为栈s1的栈顶元素,左边的数则为栈s1的栈顶元素的下一个元素,它们的计算结果则入栈s1,继续如此进行运算直到结束。作图如下:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值