计算机四则运算——逆波兰式

本文介绍了中缀表达式、前缀表达式和后缀表达式(逆波兰式)的概念及其相互转换。中缀表达式是我们常见的运算符位于操作数之间的形式,但计算机处理不便;前缀表达式采用操作符在前,操作数在后的形式,便于计算;后缀表达式则是操作数在前,操作符在后,计算时利用栈结构。文章详细阐述了三种表达式的求值过程及转换方法,并提供了具体的示例。
摘要由CSDN通过智能技术生成

A+B*(C-D)-E*F的语法树如下:
在这里插入图片描述

1.中缀表达式

1.1定义

我们最熟悉的一种表达式A+B*(C-D)-E*F等是中缀表示法。中缀表达式是由相应的语法树中序遍历得到的。

中缀表达式先算括号里的,然后算乘除,最后算加减,但是,计算机处理中缀表达式却并不方便,因为没有一种简单的数据结构可以比较方便的从一个表达式中间抽出一部分进行计算,计算完成后再放进去,然后继续后面的计算(链表也许可以,但是,代价也是不菲)。

2.前缀表达式

2.1定义

前缀表达式又叫做波兰式。同样的道理,表达式的前缀表达式是由相应语法树的前序遍历得到的。

如上图的前缀表达式为:

  • -+A * B - C D * E F

2.2求值

由前缀表达式求出结果有下面两种思路:
思路1
  1.从左至右扫描表达式,如果一个操作符后面跟着两个操作数时,则计算,然后将结果作为操作数替换(这个操作符和两个操作数)
  2.重复第1步,直至所有操作符处理完毕。如-+AB-CDEF

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值