后缀表达式求值

摘要由CSDN通过智能技术生成

什么是后缀表达式

一般我们常见的表达式为中缀表达式,比如2+3*4这样的形式,操作符在两个操作数之间。那么后缀表达式,显而易见就是操作符在操作数之后的形式了,比如2 3 4 * +。后缀表达式也叫做逆波兰表达式,传送门

为什么要用后缀表达式

很直观的一个原因就是,后缀表达式不用考虑运算符优先级、不用考虑括号等,可以顺序计算,可以很方便的用程序实现。

准备工作

一般人们输入的都是中缀表达式,如果要用后缀表达式来计算的话,我们首先应该把中缀表达式转换成后缀表达式。

基本条件

l  为了描述简单起见,我们假设表达式只包含+-*/四种运算,包括(),支持负号。运算符优先级*=/ > +=- > (。

l  表达式中的操作数提取,很简单不深入讲解,以a,b,c等字符代替表达式中的操作数。

转换步骤

1.    创建一个操作符栈,一个字符串(用来放后缀表达式)

2.    依次遍历表达式中的字符,判断是字符还是操作数

l  如果是操作数,则直接放入后缀表达式中。

l  如果是操作符,则要判断是不是括号、或者其它操作符

1.    如果是普通操作符,能直接放入操作符栈中的条件:栈为空或者当前操作符优先级比栈顶元素高。如果当前元素没有栈顶元素高,则栈顶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值