《数据结构和算法》之逆波兰表达式

逆波兰表达式(RPN)是一种不需要括号的后缀表达式,用于简化机器语言处理数学表达式的方式。本文介绍了如何将常规表达式转换为RPN,通过示例解释了RPN的工作原理,并展示了通过栈实现RPN表达式计算的步骤和代码实现。
摘要由CSDN通过智能技术生成

一,逆波兰表达式的定义   

        什么是逆波兰表达式。可能很多人会有一个疑问,这里举个例子说明一下,对于(1-2)*(4+5)这个表达式的结果,我相信很多人就异口同声地说出来肯定是-9,但是对于机器语言是怎样实现的。这个时候机器语言就需要一定的规则和复杂性来解决这个问题。波兰逻辑学家发明了一种不需要括号的后缀表达式,我们通常称之为逆波兰表达式(RPN)。

        对于(1-2)*(4+5)来说,如果用逆波兰表示法,应该是这样:1 2 - 4 5 + * 。逆波兰表示法也成为后缀表达法。

        正常的表达式转换为逆波兰表达式举例如下:

                                      a + b ----> a b +

                                     a+(b-c)  -----> a b c - +

                                    a+(b-c)*d -----> a b c - d * +

                                  a+d*(b-c) ------> a d b c - * +

二,分析

         

                                                     

                                                                                  图1  第一步操作(1-2)的实现

       在图1中可以看到&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值